123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379 |
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
- <title>GTL - Graph Template Library: maxflow_pp Class Reference</title>
- <link href="doxygen.css" rel="stylesheet" type="text/css">
- </head>
- <body>
- <p class="links">
- <a href="../index.html">Home</a> |
- Documentation |
- <a href="../register.html">Download</a> |
- <a href="../platforms.html">Platforms</a> |
- <a href="../refer.html">Projects</a> |
- <a href="../lists.html">Mailing Lists</a> |
- <a href="../history.html">Version History</a>
- </p>
- <!-- Generated by Doxygen 1.5.3 -->
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li class="current"><a href="classes.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="classes.html"><span>Alphabetical List</span></a></li>
- <li><a href="annotated.html"><span>Class List</span></a></li>
- <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
- <li><a href="functions.html"><span>Class Members</span></a></li>
- </ul>
- </div>
- <h1>maxflow_pp Class Reference</h1><!-- doxytag: class="maxflow_pp" --><!-- doxytag: inherits="algorithm" -->Maximum flow <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> (Malhotra, Kumar, Maheshwari).
- <a href="#_details">More...</a>
- <p>
- <div class="dynheader">
- Inheritance diagram for maxflow_pp:</div>
- <div class="dynsection">
- <p><center><img src="a00159.gif" border="0" usemap="#a00160" alt="Inheritance graph"></center>
- <map name="a00160">
- <area shape="rect" href="a00001.html" title="Abstract baseclass for all algoritm-classes." alt="" coords="13,7,91,31"></map>
- <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
- <div class="dynheader">
- Collaboration diagram for maxflow_pp:</div>
- <div class="dynsection">
- <p><center><img src="a00161.gif" border="0" usemap="#a00162" alt="Collaboration graph"></center>
- <map name="a00162">
- <area shape="rect" href="a00001.html" title="Abstract baseclass for all algoritm-classes." alt="" coords="428,5,505,29"><area shape="rect" href="a00020.html" title="A node in a graph." alt="" coords="441,92,492,116"><area shape="rect" title="net_source\nnet_target" alt="" coords="489,99,497,107"><area shape="rect" title="net_source\nnet_target" alt="" coords="728,151,736,159"><area shape="rect" title="int_node" alt="" coords="437,91,445,99"><area shape="rect" title="int_node" alt="" coords="489,89,497,97"><area shape="rect" href="a00011.html" title="edge_map\< double \>" alt="" coords="392,153,541,177"><area shape="rect" title="edge_max_flow\nedge_capacity\nflow_update" alt="" coords="537,161,545,169"><area shape="rect" title="edge_max_flow\nedge_capacity\nflow_update" alt="" coords="696,163,704,171"><area shape="rect" href="a00019.html" title="ne_map\< edge, double, graph, allocator\< double \> \>" alt="" coords="7,153,340,177"><area shape="rect" href="a00011.html" title="edge_map\< edge \>" alt="" coords="397,201,536,225"><area shape="rect" title="back_edge" alt="" coords="532,203,540,211"><area shape="rect" title="back_edge" alt="" coords="700,176,708,184"><area shape="rect" href="a00019.html" title="ne_map\< edge, edge, graph, allocator\< edge \> \>" alt="" coords="16,201,331,225"><area shape="rect" href="a00011.html" title="edge_map\< bool \>" alt="" coords="400,260,533,284"><area shape="rect" title="edge_org\nback_edge_exists" alt="" coords="531,269,539,277"><area shape="rect" title="edge_org\nback_edge_exists" alt="" coords="733,176,741,184"><area shape="rect" href="a00019.html" title="ne_map\< edge, bool, graph, allocator\< bool \> \>" alt="" coords="21,260,325,284"></map>
- <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
- <p>
- <a href="a00163.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
- <tr><td></td></tr>
- <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#d2583a416f44b926aa575ab2ba00a35f">maxflow_pp</a> ()</td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#0583bbda2d13f0dd1cb751cd02f755d3">~maxflow_pp</a> ()</td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#c77f4c613efe7857e053f9bfb103dc3e">set_vars</a> (const <a class="el" href="a00011.html">edge_map</a>< double > &edge_capacity)</td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#13756f76387cc114b88a44e324fc93ae">set_vars</a> (const <a class="el" href="a00011.html">edge_map</a>< double > &edge_capacity, const <a class="el" href="a00020.html">node</a> &net_source, const <a class="el" href="a00020.html">node</a> &net_target)</td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#05bb51b4f7ab213b6624188a0e64a025">check</a> (<a class="el" href="a00014.html">graph</a> &G)</td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#07c7cb1ae5db23d87cf49ce7769b2814">run</a> (<a class="el" href="a00014.html">graph</a> &G)</td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#aa7c72c190ce34a6645b80999b096a74">get_max_flow</a> (const <a class="el" href="a00010.html">edge</a> &e) const </td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#e94e30257b7e9db479d4c2d2d5d1095e">get_max_flow</a> () const </td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#bf0163c72a53b8af0c48580e156e880c">get_rem_cap</a> (const <a class="el" href="a00010.html">edge</a> &e) const </td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#039b1c893b2197a1f3fe0586c2d3e802">reset</a> ()</td></tr>
- </table>
- <hr><a name="_details"></a><h2>Detailed Description</h2>
- Maximum flow <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> (Malhotra, Kumar, Maheshwari). <hr><h2>Constructor & Destructor Documentation</h2>
- <a class="anchor" name="d2583a416f44b926aa575ab2ba00a35f"></a><!-- doxytag: member="maxflow_pp::maxflow_pp" ref="d2583a416f44b926aa575ab2ba00a35f" args="()" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">maxflow_pp::maxflow_pp </td>
- <td>(</td>
- <td class="paramname"> </td>
- <td> ) </td>
- <td width="100%"></td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Default constructor. Enables only the calculation of maximum flow.<p>
- <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00001.html#b79e1ddec2f2afdf4b36b10724db8b15" title="Creates an algorithm object.">algorithm::algorithm</a> </dd></dl>
- </div>
- </div><p>
- <a class="anchor" name="0583bbda2d13f0dd1cb751cd02f755d3"></a><!-- doxytag: member="maxflow_pp::~maxflow_pp" ref="0583bbda2d13f0dd1cb751cd02f755d3" args="()" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">virtual maxflow_pp::~maxflow_pp </td>
- <td>(</td>
- <td class="paramname"> </td>
- <td> ) </td>
- <td width="100%"><code> [virtual]</code></td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Destructor.<p>
- <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00001.html#dca9b1e7fa3afd914519a9dbb44e9fd5" title="Destroys the algorithm object.">algorithm::~algorithm</a> </dd></dl>
- </div>
- </div><p>
- <hr><h2>Member Function Documentation</h2>
- <a class="anchor" name="c77f4c613efe7857e053f9bfb103dc3e"></a><!-- doxytag: member="maxflow_pp::set_vars" ref="c77f4c613efe7857e053f9bfb103dc3e" args="(const edge_map< double > &edge_capacity)" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void maxflow_pp::set_vars </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="a00011.html">edge_map</a>< double > & </td>
- <td class="paramname"> <em>edge_capacity</em> </td>
- <td> ) </td>
- <td width="100%"></td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Sets capacity of every <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> for maximum flow calculation where artificial start-node and end_node will be computed automatically.<p>
- <dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>edge_capacity</em> </td><td>capacity of every <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </td></tr>
- </table>
- </dl>
- </div>
- </div><p>
- <a class="anchor" name="13756f76387cc114b88a44e324fc93ae"></a><!-- doxytag: member="maxflow_pp::set_vars" ref="13756f76387cc114b88a44e324fc93ae" args="(const edge_map< double > &edge_capacity, const node &net_source, const node &net_target)" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void maxflow_pp::set_vars </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="a00011.html">edge_map</a>< double > & </td>
- <td class="paramname"> <em>edge_capacity</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="a00020.html">node</a> & </td>
- <td class="paramname"> <em>net_source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="a00020.html">node</a> & </td>
- <td class="paramname"> <em>net_target</em></td><td> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Sets capacity of every <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> for maximum flow calculation<p>
- <dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>edge_capacity</em> </td><td>capacity of every <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>net_source</em> </td><td>start-node </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>net_target</em> </td><td>end-node </td></tr>
- </table>
- </dl>
- </div>
- </div><p>
- <a class="anchor" name="05bb51b4f7ab213b6624188a0e64a025"></a><!-- doxytag: member="maxflow_pp::check" ref="05bb51b4f7ab213b6624188a0e64a025" args="(graph &G)" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">virtual int maxflow_pp::check </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00014.html">graph</a> & </td>
- <td class="paramname"> <em>G</em> </td>
- <td> ) </td>
- <td width="100%"><code> [virtual]</code></td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Checks whether following preconditions are satisfied: <ul>
- <li>
- <a class="el" href="a00016.html#c77f4c613efe7857e053f9bfb103dc3e">maxflow_pp::set_vars</a> has been executed before. </li>
- <li>
- only edge_capacities >= 0 are applied. </li>
- <li>
- <code>G</code> is directed. </li>
- <li>
- <code>G</code> is connected. </li>
- <li>
- <code>G</code> has at least one <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> and two nodes. </li>
- <li>
- if not applied, start-nodes and end-nodes exists. </li>
- <li>
- if applied, start-node is not the same <a class="el" href="a00020.html" title="A node in a graph.">node</a> as end-node. </li>
- </ul>
- <p>
- <dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>G</em> </td><td><a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> </td></tr>
- </table>
- </dl>
- <dl class="return" compact><dt><b>Returns:</b></dt><dd><code><a class="el" href="a00001.html#f1a0078e153aa99c24f9bdf0d97f67105114c20e4a96a76b5de9f28bf15e282b">algorithm::GTL_OK</a></code> on success <code><a class="el" href="a00001.html#f1a0078e153aa99c24f9bdf0d97f67106fcf574690bbd6cf710837a169510dd7">algorithm::GTL_ERROR</a></code> otherwise </dd></dl>
- <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00001.html#76361fb03ad1cf643affc51821e43bed" title="Checks whether all preconditions are satisfied.">algorithm::check</a> </dd></dl>
- <p>Implements <a class="el" href="a00001.html#76361fb03ad1cf643affc51821e43bed">algorithm</a>.</p>
- </div>
- </div><p>
- <a class="anchor" name="07c7cb1ae5db23d87cf49ce7769b2814"></a><!-- doxytag: member="maxflow_pp::run" ref="07c7cb1ae5db23d87cf49ce7769b2814" args="(graph &G)" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int maxflow_pp::run </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00014.html">graph</a> & </td>
- <td class="paramname"> <em>G</em> </td>
- <td> ) </td>
- <td width="100%"><code> [virtual]</code></td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Computes maximum flow of <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> <code>G</code>.<p>
- <dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>G</em> </td><td><a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> </td></tr>
- </table>
- </dl>
- <dl class="return" compact><dt><b>Returns:</b></dt><dd><code><a class="el" href="a00001.html#f1a0078e153aa99c24f9bdf0d97f67105114c20e4a96a76b5de9f28bf15e282b">algorithm::GTL_OK</a></code> on success <code><a class="el" href="a00001.html#f1a0078e153aa99c24f9bdf0d97f67106fcf574690bbd6cf710837a169510dd7">algorithm::GTL_ERROR</a></code> otherwise </dd></dl>
- <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00001.html#734b189509a8d6b56b65f8ff772d43ca" title="Applies algorithm to graph g.">algorithm::run</a> </dd></dl>
- <p>Implements <a class="el" href="a00001.html#734b189509a8d6b56b65f8ff772d43ca">algorithm</a>.</p>
- </div>
- </div><p>
- <a class="anchor" name="aa7c72c190ce34a6645b80999b096a74"></a><!-- doxytag: member="maxflow_pp::get_max_flow" ref="aa7c72c190ce34a6645b80999b096a74" args="(const edge &e) const " -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">double maxflow_pp::get_max_flow </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="a00010.html">edge</a> & </td>
- <td class="paramname"> <em>e</em> </td>
- <td> ) </td>
- <td width="100%"> const</td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Returns the maximum flow of an <a class="el" href="a00010.html" title="An edge in a graph.">edge</a>.<p>
- <dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>e</em> </td><td><a class="el" href="a00010.html" title="An edge in a graph.">edge</a> of a <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> <code>G</code> </td></tr>
- </table>
- </dl>
- <dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum flow value </dd></dl>
- </div>
- </div><p>
- <a class="anchor" name="e94e30257b7e9db479d4c2d2d5d1095e"></a><!-- doxytag: member="maxflow_pp::get_max_flow" ref="e94e30257b7e9db479d4c2d2d5d1095e" args="() const " -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">double maxflow_pp::get_max_flow </td>
- <td>(</td>
- <td class="paramname"> </td>
- <td> ) </td>
- <td width="100%"> const</td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Returns the maximum flow of the whole <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> <code>G</code>.<p>
- <dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum flow value </dd></dl>
- </div>
- </div><p>
- <a class="anchor" name="bf0163c72a53b8af0c48580e156e880c"></a><!-- doxytag: member="maxflow_pp::get_rem_cap" ref="bf0163c72a53b8af0c48580e156e880c" args="(const edge &e) const " -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">double maxflow_pp::get_rem_cap </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="a00010.html">edge</a> & </td>
- <td class="paramname"> <em>e</em> </td>
- <td> ) </td>
- <td width="100%"> const</td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Returns the remaining free capacity of an <a class="el" href="a00010.html" title="An edge in a graph.">edge</a>.<p>
- <dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>e</em> </td><td><a class="el" href="a00010.html" title="An edge in a graph.">edge</a> of a <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> G </td></tr>
- </table>
- </dl>
- <dl class="return" compact><dt><b>Returns:</b></dt><dd>remaining capacity </dd></dl>
- </div>
- </div><p>
- <a class="anchor" name="039b1c893b2197a1f3fe0586c2d3e802"></a><!-- doxytag: member="maxflow_pp::reset" ref="039b1c893b2197a1f3fe0586c2d3e802" args="()" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">virtual void maxflow_pp::reset </td>
- <td>(</td>
- <td class="paramname"> </td>
- <td> ) </td>
- <td width="100%"><code> [virtual]</code></td>
- </tr>
- </table>
- </div>
- <div class="memdoc">
- <p>
- Resets maximum flow <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a>, i.e. prepares the <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> to be applied to another <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00001.html#21aba63d066ae7897de6ca7d8425c408" title="Resets algorithm.">algorithm::reset</a> </dd></dl>
- <p>Implements <a class="el" href="a00001.html#21aba63d066ae7897de6ca7d8425c408">algorithm</a>.</p>
- </div>
- </div><p>
- <p class="links">
- <a href="http://www.uni-passau.de/">University of Passau</a>
- -
- <a href="http://www.fmi.uni-passau.de/">FMI</a>
- -
- <a href="http://www.fmi.uni-passau.de/fmi/lehrstuehle/brandenburg/">Theoretical
- Computer Science</a>
- </p>
- <div class="copyright">
- Design © 2002, 2003 <a href="mailto:raitner@fmi.uni-passau.de">Marcus Raitner</a>, University of Passau
- </div>
- </body>
- </html>
|