123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- <!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_ff 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_ff Class Reference</h1><!-- doxytag: class="maxflow_ff" --><!-- doxytag: inherits="algorithm" -->Maximum flow <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> (Edmonds-Karp).
- <a href="#_details">More...</a>
- <p>
- <div class="dynheader">
- Inheritance diagram for maxflow_ff:</div>
- <div class="dynsection">
- <p><center><img src="a00154.gif" border="0" usemap="#a00155" alt="Inheritance graph"></center>
- <map name="a00155">
- <area shape="rect" href="a00001.html" title="Abstract baseclass for all algoritm-classes." alt="" coords="11,7,88,31"></map>
- <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
- <div class="dynheader">
- Collaboration diagram for maxflow_ff:</div>
- <div class="dynsection">
- <p><center><img src="a00156.gif" border="0" usemap="#a00157" alt="Collaboration graph"></center>
- <map name="a00157">
- <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,100,497,108"><area shape="rect" title="net_source\nnet_target" alt="" coords="716,143,724,151"><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,145,541,169"><area shape="rect" title="edge_max_flow\nedge_capacity" alt="" coords="537,153,545,161"><area shape="rect" title="edge_max_flow\nedge_capacity" alt="" coords="695,155,703,163"><area shape="rect" href="a00019.html" title="ne_map\< edge, double, graph, allocator\< double \> \>" alt="" coords="7,145,340,169"><area shape="rect" href="a00011.html" title="edge_map\< edge \>" alt="" coords="397,193,536,217"><area shape="rect" title="back_edge" alt="" coords="532,196,540,204"><area shape="rect" title="back_edge" alt="" coords="699,168,707,176"><area shape="rect" href="a00019.html" title="ne_map\< edge, edge, graph, allocator\< edge \> \>" alt="" coords="16,193,331,217"><area shape="rect" href="a00011.html" title="edge_map\< bool \>" alt="" coords="400,252,533,276"><area shape="rect" title="edge_org\nback_edge_exists" alt="" coords="531,261,539,269"><area shape="rect" title="edge_org\nback_edge_exists" alt="" coords="731,168,739,176"><area shape="rect" href="a00019.html" title="ne_map\< edge, bool, graph, allocator\< bool \> \>" alt="" coords="21,252,325,276"></map>
- <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
- <p>
- <a href="a00158.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="a00015.html#fb74eb7d5c9638733716befa14c17339">maxflow_ff</a> ()</td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#2b70ba8a8ef5d4f16e6cf42c9e5a2da7">~maxflow_ff</a> ()</td></tr>
- <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#d2485a4c093dbcfa045d1e6e5d78f533">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="a00015.html#1e715030d70080e0c9ecf118dd81e8f6">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="a00015.html#b79864f21b29192bc9a81ebfa00cd262">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="a00015.html#0a4391b9093d6966b47c023a555099e2">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="a00015.html#a982dbe27ec512bd019e69422f3a168a">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="a00015.html#486a9f47cf0173310c202d5040194232">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="a00015.html#b578430c2c7675b7158b3aec76357c1f">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="a00015.html#8c87fccfda3fa1a320c4a280b2752ae9">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> (Edmonds-Karp). <hr><h2>Constructor & Destructor Documentation</h2>
- <a class="anchor" name="fb74eb7d5c9638733716befa14c17339"></a><!-- doxytag: member="maxflow_ff::maxflow_ff" ref="fb74eb7d5c9638733716befa14c17339" args="()" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">maxflow_ff::maxflow_ff </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="2b70ba8a8ef5d4f16e6cf42c9e5a2da7"></a><!-- doxytag: member="maxflow_ff::~maxflow_ff" ref="2b70ba8a8ef5d4f16e6cf42c9e5a2da7" args="()" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">virtual maxflow_ff::~maxflow_ff </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="d2485a4c093dbcfa045d1e6e5d78f533"></a><!-- doxytag: member="maxflow_ff::set_vars" ref="d2485a4c093dbcfa045d1e6e5d78f533" args="(const edge_map< double > &edge_capacity)" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void maxflow_ff::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="1e715030d70080e0c9ecf118dd81e8f6"></a><!-- doxytag: member="maxflow_ff::set_vars" ref="1e715030d70080e0c9ecf118dd81e8f6" 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_ff::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="b79864f21b29192bc9a81ebfa00cd262"></a><!-- doxytag: member="maxflow_ff::check" ref="b79864f21b29192bc9a81ebfa00cd262" args="(graph &G)" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">virtual int maxflow_ff::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="a00015.html#d2485a4c093dbcfa045d1e6e5d78f533">maxflow_ff::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="0a4391b9093d6966b47c023a555099e2"></a><!-- doxytag: member="maxflow_ff::run" ref="0a4391b9093d6966b47c023a555099e2" args="(graph &G)" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int maxflow_ff::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="a982dbe27ec512bd019e69422f3a168a"></a><!-- doxytag: member="maxflow_ff::get_max_flow" ref="a982dbe27ec512bd019e69422f3a168a" args="(const edge &e) const " -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">double maxflow_ff::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> G </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="486a9f47cf0173310c202d5040194232"></a><!-- doxytag: member="maxflow_ff::get_max_flow" ref="486a9f47cf0173310c202d5040194232" args="() const " -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">double maxflow_ff::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> G.<p>
- <dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum flow value </dd></dl>
- </div>
- </div><p>
- <a class="anchor" name="b578430c2c7675b7158b3aec76357c1f"></a><!-- doxytag: member="maxflow_ff::get_rem_cap" ref="b578430c2c7675b7158b3aec76357c1f" args="(const edge &e) const " -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">double maxflow_ff::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="8c87fccfda3fa1a320c4a280b2752ae9"></a><!-- doxytag: member="maxflow_ff::reset" ref="8c87fccfda3fa1a320c4a280b2752ae9" args="()" -->
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">virtual void maxflow_ff::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>.<p>
- <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>
|