World Library  
Flag as Inappropriate
Email this Article

Flow network

Article Id: WHEBN0000645676
Reproduction Date:

Title: Flow network  
Author: World Heritage Encyclopedia
Language: English
Subject: Maximum flow problem, Network science, Network medicine, Frank–Wolfe algorithm, List of algorithms
Collection: Directed Graphs, Graph Algorithms, Network Flow, Operations Research
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Flow network

In graph theory, a flow network (also known as a transportation network) is a directed graph where each edge has a capacity and each edge receives a flow. The amount of flow on an edge cannot 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, unless it is a source, which has only outgoing flow, or sink, which has only incoming flow. A network can be used to model traffic in a road system, circulation with demands, fluids in pipes, currents in an electrical circuit, or anything similar in which something travels through a network of nodes.

Contents

  • Definition 1
  • Example 2
  • Well known algorithms for Max-Flow​ 3
  • Applications 4
  • See also 5
  • References 6
  • Further reading 7
  • External links 8

Definition

Let G = (V,E) be a finite directed graph in which every edge \ (u,v) \in E has a non-negative, real-valued capacity \ c(u,v). 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 in 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). The flow along an edge cannot 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.

i.e. Flow conservation implies: \ \sum_{(u,v) \in E} f(u,v) = \sum_{(v,z) \in E} f(v,z) , for each vertex \ {v \in V\setminus\{s,t\}}

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.

Basically we can say that flow for a physical network is flow leaving at s = \ \sum_{(s,v)\in E} f(s,v)

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 a path from \ u to \ v in the residual network, even though there is no path 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 \ G_f .

So \ G_f is constructed using graph G as follows:

1. Vertices of \ G_f = \ V

2. Edges of \ G_f = \ E_f defined as-

For each edge \ (x,y) \in E

    (i). If \ f(x,y) < c(x,y),  make Forward edge \ (x,y) \in E_f with capacity  \ c_f = c(x,y) - f(x,y) .
    (ii). If \ f(x,y) > 0,  make Backward edge \ (y, x) \in E_f with capacity  \ c_f =  f(x,y) .

This concept is used in Ford–Fulkerson algorithm which computes the maximum flow in a flow network.

Sometimes one needs to model a network with more than one source, a supersource is introduced to the graph.[1] This consists of a vertex connected to each of the sources with edges of infinite capacity, so as to act as a global source. A similar construct for sinks is called a supersink.[2]

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. 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 as long as there exists some path with a positive residual capacity, the flow will not be maximum. The residual capacity for some path is the minimum residual capacity of all edges in that path.

Well known algorithms for Max-Flow​

Inventor(s)​ Year Time complexity​
Edmonds–Karp algorithm 1972 O(m2n)
MPM (Malhotra, Pramodh-Kumar and Maheshwari) algorithm[3] 1978 O(n3)
J. Orlin 2013 O(mn)

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 buildup 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. For any such physical network, the flow coming into any intermediate node needs to equal the flow going out of that node. This conservation constraint was formalized as Kirchhoff's current law.

Flow networks also find applications in food web. 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.

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. 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. Maximum flow problems can be solved efficiently with the relabel-to-front algorithm. The max-flow min-cut theorem states that finding a maximal network flow is equivalent to finding a cut of minimum capacity that separates the source and the sink. Where a cut is the division of vertices such that the source is in one division and the sink is in another.

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. 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 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). 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.

In a source localization problem, an algorithm tries to identify the most likely source node of information diffusion through a partially observed network. This can be done in linear time for trees and cubic time for arbitrary networks and has applications ranging from tracking mobile phone users to identifying the originating village of disease outbreaks.[4]

See also

References

  1. ^ Black, Paul E. "Supersource".  
  2. ^ Black, Paul E. "Supersink".  
  3. ^ Malhotra, V.M.; Kumar, M.Pramodh; Maheshwari, S.N. (1978). "An O(|V|^3) algorithm for finding maximum flows in networks". Information Processing Letters 7 (6): 277–278.  
  4. ^ http://www.pedropinto.org.s3.amazonaws.com/publications/locating_source_diffusion_networks.pdf

Further reading

  • George T. Heineman, Gary Pollice, and Stanley Selkow (2008). "Chapter 8:Network Flow Algorithms". Algorithms in a Nutshell.  
  •  
  •  
  •  
  • Even, Shimon (1979). Graph Algorithms. Rockville, Maryland: Computer Science Press.  
  • Gibbons, Alan (1985). Algorithmic Graph Theory. Cambridge: Cambridge University Press.  
  •  

External links

  • Maximum Flow Problem
  • Real graph instances
  • Lemon C++ library with several maximum flow and minimum cost circulation algorithms
  • QuickGraph, graph data structures and algorithms for .Net
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 



Copyright © World Library Foundation. All rights reserved. eBooks from World eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.