andres::graph
|
Edmonds-Karp Algorithm for computing the maximum s-t-flow of a Digraph. More...
#include <max-flow.hxx>
Classes | |
class | ResidualMask |
Public Types | |
typedef GRAPH | GraphType |
typedef FLOW | Flow |
Public Member Functions | |
MaxFlowEdmondsKarp () | |
Construct an instance of the Edmonds-Karp algorithm. | |
template<class EDGE_WEIGHT_ITERATOR > | |
MaxFlowEdmondsKarp (const GraphType &, EDGE_WEIGHT_ITERATOR, const std::size_t, const std::size_t) | |
Construct an instance of the Edmonds-Karp algorithm. | |
template<class EDGE_WEIGHT_ITERATOR , class SUBGRAPH_MASK > | |
MaxFlowEdmondsKarp (const GraphType &, const SUBGRAPH_MASK &, EDGE_WEIGHT_ITERATOR, const std::size_t, const std::size_t) | |
Construct an instance of the Edmonds-Karp algorithm. | |
void | clear () |
Clear all members. | |
Flow | maxFlow () const |
Return the maximum flow through the graph. | |
Flow | flow (const std::size_t) const |
Return the flow in a certain edge. | |
template<class EDGE_WEIGHT_ITERATOR , class SUBGRAPH_MASK > | |
Flow | operator() (const GraphType &, const SUBGRAPH_MASK &, const EDGE_WEIGHT_ITERATOR, const std::size_t, const std::size_t) |
Initialize members and execute Edmonds-Karp algorithm. |
Edmonds-Karp Algorithm for computing the maximum s-t-flow of a Digraph.
Reference: J. Edmonds and R. M. Karp. Theoretical improvements in algorithmic efficiency for network flow problems. Journal of the ACM 19(2):248-264. 1972
Definition at line 460 of file max-flow.hxx.
typedef FLOW andres::graph::MaxFlowEdmondsKarp< GRAPH, FLOW >::Flow |
Definition at line 463 of file max-flow.hxx.
typedef GRAPH andres::graph::MaxFlowEdmondsKarp< GRAPH, FLOW >::GraphType |
Definition at line 462 of file max-flow.hxx.
|
inline |
Construct an instance of the Edmonds-Karp algorithm.
Definition at line 533 of file max-flow.hxx.
|
inline |
Construct an instance of the Edmonds-Karp algorithm.
graph | A graph. |
edgeWeightIterator | Iterator to the beginning of a sequence of edge weights. |
sourceVertexIndex | Index of the source vertex. |
sinkVertexIndex | Index of the sink vertex. |
Definition at line 552 of file max-flow.hxx.
|
inline |
Construct an instance of the Edmonds-Karp algorithm.
graph | A graph. |
subgraphMask | A subgraph mask. |
edgeWeightIterator | Iterator to the beginning of a sequence of edge weights. |
sourceVertexIndex | Index of the source vertex. |
sinkVertexIndex | Index of the sink vertex. |
Definition at line 579 of file max-flow.hxx.
|
inline |
Clear all members.
Definition at line 600 of file max-flow.hxx.
|
inline |
Return the flow in a certain edge.
edgeIndex | Index of an edge. |
Definition at line 626 of file max-flow.hxx.
|
inline |
Return the maximum flow through the graph.
Definition at line 615 of file max-flow.hxx.
MaxFlowEdmondsKarp< GRAPH, FLOW >::Flow andres::graph::MaxFlowEdmondsKarp< GRAPH, FLOW >::operator() | ( | const GraphType & | graph, |
const SUBGRAPH_MASK & | subgraphMask, | ||
const EDGE_WEIGHT_ITERATOR | edgeWeightIterator, | ||
const std::size_t | sourceVertexIndex, | ||
const std::size_t | sinkVertexIndex | ||
) |
Initialize members and execute Edmonds-Karp algorithm.
graph | A graph. |
subgraphMask | A subgraph mask. |
edgeWeightIterator | Iterator to the beginning of a sequence of edge weights. |
sourceVertexIndex | Index of the source vertex. |
sinkVertexIndex | Index of the sink vertex. |
Definition at line 644 of file max-flow.hxx.