In graph theory, a flow network is a directed graph where each edge has a capacity and each edge receives a flow. In Mathematics and Computer science, graph theory is the study of graphs: mathematical structures used to model pairwise relations between objects In Mathematics and Computer science, a graph is the basic object of study in Graph theory. The amount of flow on an edge can not exceed the capacity of the edge. Often in Operations Research, a directed graph is called a network, the vertices are called nodes and the edges are called arcs. A flow must satisfy the restriction that the amount of flow into a node equals the amount of flow out of it, except when it is a source, which has more outgoing flow, or sink, which has more incoming flow. A network can be used to model traffic in a road system, fluids in pipes, currents in an electrical circuit, or anything similar in which something travels through a network of nodes.

## Definition

Suppose $\ G(V,E)$ is a finite directed graph in which every edge $\ (u,v) \in E$ has a non-negative, real-valued capacity $\ c(u,v)$. In Mathematics and Computer science, a graph is the basic object of study in Graph theory. In Mathematics and Computer science, a graph is the basic object of study in Graph theory. If $\ (u, v) \not \in E$, we assume that $\ c(u, v) = 0$. We distinguish two vertices: a source $\ s$ and a sink $\ t$. A flow network is a real function $\ f:V \times V \rightarrow \mathbb{R}$ with the following three properties for all nodes $\ u$ and $\ v$:

 Capacity constraints: $\ f(u,v) \le c(u,v)$. In Mathematics, the real numbers may be described informally in several different ways The Mathematical concept of a function expresses dependence between two quantities one of which is given (the independent variable, argument of the function The flow along an edge can not exceed its capacity. Skew symmetry: $\ f(u,v) = - f(v,u)$. The net flow from $\ u$ to $\ v$ must be the opposite of the net flow from $\ v$ to $\ u$ (see example). Flow conservation: $\ \sum_{w \in V} f(u,w) = 0$, unless $\ u=s$ or $\ u=t$. The net flow to a node is zero, except for the source, which "produces" flow, and the sink, which "consumes" flow.

Notice that $\ f(u,v)$ is the net flow from $\ u$ to $\ v$. If the graph represents a physical network, and if there is a real flow of for example 4 units from $\ u$ to $\ v$, and a real flow of 3 units from $\ v$ to $\ u$, we have $\ f(u,v)=1$ and $\ f(v,u)=-1$.

The residual capacity of an edge is $\ c_f(u,v) = c(u,v) - f(u,v)$. This defines a residual network denoted $\ G_f(V,E_f)$, giving the amount of available capacity. See that there can be an edge from $\ u$ to $\ v$ in the residual network, even though there is no edge from $\ u$ to $\ v$ in the original network. Since flows in opposite directions cancel out, decreasing the flow from $\ v$ to $\ u$ is the same as increasing the flow from $\ u$ to $\ v$. An augmenting path is a path $\ (u_1,u_2,\dots,u_k)$ in the residual network, where $\ u_1=s$, $\ u_k=t$, and $\ c_f(u_i, u_{i+1}) > 0$. A network is at maximum flow if and only if there is no augmenting path in the residual network.

## Example

A flow network showing flow and capacity.

To the right you see a flow network with source labeled $\ s$, sink $\ t$, and four additional nodes. The flow and capacity is denoted $\ f/c$. Notice how the network upholds skew symmetry, capacity constraints and flow conservation. The total amount of flow from $\ s$ to $\ t$ is 5, which can be easily seen from the fact that the total outgoing flow from $\ s$ is 5, which is also the incoming flow to $\ t$. We know that no flow appears or disappears in any of the other nodes.

Residual network for the above flow network, showing residual capacities.

Below you see the residual network for the given flow. Notice how there is positive residual capacity on some edges where the original capacity is zero, for example for the edge $\ (d,c)$. This flow is not a maximum flow. The maximum flow problem is to find a feasible flow through a single-source single-sink Flow network that is maximum There is available capacity along the paths $\ (s,a,c,t)$, $\ (s,a,b,d,t)$ and $\ (s,a,b,d,c,t)$, which are then the augmenting paths. The residual capacity of the first path is $\ min(c(s,a)-f(s,a), c(a,c)-f(a,c), c(c,t)-f(c,t)) = \min(5-3, 3-2, 2-1) = \min(2, 1, 1) = 1$. Notice that augmenting path $\ (s,a,b,d,c,t)$ does not exist in the original network, but you can send flow along it, and still get a legal flow.

If this is a real network, there might actually be a flow of 2 from $\ a$ to $\ b$, and a flow of 1 from $\ b$ to $\ a$, but we only maintain the net flow.

## Applications

Picture a series of water pipes, fitting into a network. Each pipe is of a certain diameter, so it can only maintain a flow of a certain amount of water. Anywhere that pipes meet, the total amount of water coming into that junction must be equal to the amount going out, otherwise we would quickly run out of water, or we would have a build up of water. We have a water inlet, which is the source, and an outlet, the sink. A flow would then be one possible way for water to get from source to sink so that the total amount of water coming out of the outlet is consistent. Intuitively, the total flow of a network is the rate at which water comes out of the outlet.

Flows can pertain to people or material over transportation networks, or to electricity over electrical distribution systems. The electrical distribution industry encompasses the wholesale and retail sales of electrical equipment and products primarily through Electrical distributors. For any such physical network, the flow coming into any intermediate node needs to equal the flow going out of that node. Bollobás characterizes this constraint in terms of Kirchhoff's current law, while later authors (ie: Chartrand) mention its generalization to some conservation equation. Béla Bollobás (born August 3, 1943 in Budapest, Hungary) is a Hungarian Mathematician who has worked in various areas of mathematics For other laws named after Gustav Kirchhoff, see Kirchhoff's laws.

Flow networks also find applications in ecology: flow networks arise naturally when considering the flow of nutrients and energy between different organizations in a food web. Ecology (from Greek grc οἶκος oikos, "house(hold" and grc -λογία -logia) is the scientific study of Food chains, also called food networks and/or trophic networks, describe the feeding relationships between species within an Ecosystem. The mathematical problems associated with such networks are quite different from those that arise in networks of fluid or traffic flow. The field of ecosystem network analysis, developed by Robert Ulanowicz and others, involves using concepts from information theory and thermodynamics to study the evolution of these networks over time. Robert E Ulanowicz (born September 17, 1943 in Baltimore) is an American theoretical ecologist and Philosopher who is best known Information theory is a branch of Applied mathematics and Electrical engineering involving the quantification of Information. In Physics, thermodynamics (from the Greek θερμη therme meaning " Heat " and δυναμις dynamis meaning "

## Generalizations and specializations

The simplest and most common problem using flow networks is to find what is called the maximum flow, which provides the largest possible total flow from the source to the sink in a given graph. The maximum flow problem is to find a feasible flow through a single-source single-sink Flow network that is maximum There are many other problems which can be solved using max flow algorithms, if they are appropriately modeled as flow networks, such as bipartite matching, the assignment problem and the transportation problem. In the Mathematical discipline of Graph theory a matching or edge independent set in a graph is a set of edges without common vertices The assignment problem is one of the fundamental Combinatorial optimization problems in the branch of optimization or Operations research in Mathematics In Mathematics and Economics, transportation theory is a name given to the study of optimal transportation and allocation of resources

In a multi-commodity flow problem, you have multiple sources and sinks, and various "commodities" which are to flow from a given source to a given sink. The multi-commodity flow problem is a Network flow problem with multiple commodities (or goods flowing through the network with different source and sink nodes This could be for example various goods that are produced at various factories, and are to be delivered to various given customers through the same transportation network.

In a minimum cost flow problem, each edge u,v has a given cost k(u,v), and the cost of sending the flow f(u,v) across the edge is $f(u,v) \cdot k(u,v)$. The minimum cost flow problem is finding the cheapest possible way of sending a certain amount of flow through a Flow network. The objective is to send a given amount of flow from the source to the sink, at the lowest possible price.

In a circulation problem, you have a lower bound l(u,v) on the edges, in addition to the upper bound c(u,v). The circulation problem and its variants is a generalisation of Network flow problems with the added constraint of a lower bound on edge flows and with flow conservation Each edge also has a cost. Often, flow conservation holds for all nodes in a circulation problem, and there is a connection from the sink back to the source. In this way, you can dictate the total flow with l(t,s) and c(t,s). The flow circulates through the network, hence the name of the problem.

In a network with gains or generalized network each edge has a gain, a real number (not zero) such that, if the edge has gain g, and an amount x flows into the edge at its tail, then an amount gx flows out at the head. A gain graph is a graph whose edges are labelled invertibly, or orientably, by elements of a group G.