This group contains the algorithms for finding maximum flows and feasible circulations [6], [1].
The maximum flow problem is to find a flow of maximum value between a single source and a single target. Formally, there is a  digraph, a
 digraph, a  capacity function and
 capacity function and  source and target nodes. A maximum flow is an
 source and target nodes. A maximum flow is an  solution of the following optimization problem.
 solution of the following optimization problem.
![\[ \max\sum_{sv\in A} f(sv) - \sum_{vs\in A} f(vs) \]](form_4.png) 
![\[ \sum_{uv\in A} f(uv) = \sum_{vu\in A} f(vu) \quad \forall u\in V\setminus\{s,t\} \]](form_5.png) 
![\[ 0 \leq f(uv) \leq cap(uv) \quad \forall uv\in A \]](form_6.png) 
Preflow is an efficient implementation of Goldberg-Tarjan's preflow push-relabel algorithm [15] for finding maximum flows. It also provides functions to query the minimum cut, which is the dual problem of maximum flow.
Circulation is a preflow push-relabel algorithm implemented directly for finding feasible circulations, which is a somewhat different problem, but it is strongly related to maximum flow. For more information, see Circulation.
| Classes | |
| class | Circulation< GR, LM, UM, SM, TR > | 
| Push-relabel algorithm for the network circulation problem.  More... | |
| class | EdmondsKarp< GR, CAP, TR > | 
| Edmonds-Karp algorithms class.  More... | |
| class | Preflow< GR, CAP, TR > | 
| Preflow algorithm class.  More... | |
| Files | |
| file | circulation.h | 
| Push-relabel algorithm for finding a feasible circulation. | |
| file | edmonds_karp.h | 
| Implementation of the Edmonds-Karp algorithm. | |
| file | preflow.h | 
| Implementation of the preflow algorithm. | |
 1.8.5
 1.8.5