Fundamentals of Network Flow

Core principles governing the movement of goods, data, or resources through constrained networks, foundational to operations research and computer science.

Introduction

Network flow theory provides a mathematical framework for modeling and optimizing the movement of commodities through a network of interconnected nodes. Whether representing data packets across the internet, water through pipelines, vehicles on road networks, or goods through supply chains, flow networks abstract real-world constraints into directed graphs with capacity limits.

The central problem in this domain is determining the maximum amount of flow that can be routed from a designated source to a sink, while respecting edge capacities and flow conservation constraints. This field sits at the intersection of graph theory, combinatorial optimization, and operations research.

Core Concepts

Formal Definition

A flow network G = (V, E) is a directed graph where each edge (u, v) ∈ E has a non-negative capacity c(u, v) ≥ 0. Two distinguished nodes exist: a source s ∈ V and a sink t ∈ V, with no edges entering s and no edges leaving t.

Flow Functions & Constraints

A flow function f(u, v) assigns a real value to each edge, representing the rate at which material moves from u to v. Valid flows must satisfy two fundamental properties:

  1. Capacity Constraint: 0 ≤ f(u, v) ≤ c(u, v) for all edges. Flow cannot exceed capacity, nor can it be negative.
  2. Flow Conservation: For every node v ∈ V \ {s, t}, the total incoming flow equals total outgoing flow: Σ f(u, v) = Σ f(v, w).

The Value of a Flow

The value of a flow |f| is the net flow leaving the source (or equivalently, entering the sink):
|f| = Σ f(s, v) - Σ f(v, s)
The objective of the maximum flow problem is to find a flow assignment that maximizes |f|.

The Max-Flow Min-Cut Theorem

📜 Fundamental Theorem

The maximum value of a flow from s to t is equal to the minimum capacity of an s-t cut in the network. A cut partitions V into two sets S and T such that s ∈ S and t ∈ T. The capacity of the cut is the sum of capacities of edges going from S to T.

Proven by Ford and Fulkerson (1956), this theorem establishes a profound duality: the bottleneck limiting flow (cut) exactly equals the maximum achievable throughput. It transforms an optimization problem into a verification problem and underpins nearly all modern flow algorithms.

Key Algorithms

Ford-Fulkerson Method

The foundational approach relies on finding augmenting paths in a residual graph G_f, where edges represent remaining capacity. Each iteration increases flow along a path until no more exist. Time complexity: O(E · |f*|), where |f*| is the max flow value. Can be inefficient for irrational capacities or large integer bounds.

Edmonds-Karp Algorithm

An implementation of Ford-Fulkerson using BFS to find the shortest augmenting path (fewest edges). Guarantees polynomial runtime: O(V · E²). Preferred for its simplicity and predictable performance.

// Pseudocode: Edmonds-Karp Algorithm
function EdmondsKarp(G, s, t):
    max_flow = 0
    residual_cap = copy(G.capacities)
    
    while BFS(residual_cap, s, t) finds path P:
        bottleneck = min(residual_cap[u][v] for (u,v) in P)
        for each (u, v) in P:
            residual_cap[u][v] -= bottleneck
            residual_cap[v][u] += bottleneck
        max_flow += bottleneck
    
    return max_flow

Dinic's Algorithm

Constructs a level graph using BFS, then repeatedly finds blocking flows using DFS. Achieves O(V² · E) generally, and O(V · E · log U) for unit capacities. Used in competitive programming and large-scale industrial solvers.

Applications

  • Telecommunications: Routing data packets, bandwidth allocation, congestion control.
  • Transportation & Logistics: Traffic optimization, freight routing, supply chain management.
  • Computer Vision: Image segmentation via graph cuts (Boykov & Kolmogorov, 2004).
  • Matching Problems: Bipartite matching, job assignment, college admissions (reducible to max flow).
  • Project Management: Critical path analysis, resource scheduling.

Network flow also extends to min-cost max-flow, multi-commodity flow, and circulation with demands, each addressing specialized real-world constraints.

References & Further Reading

  1. Ford, L. R., & Fulkerson, D. R. (1962). Flows in Networks. Princeton University Press.
  2. Clément, R., & Tarjan, R. E. (1990). "A Strongly Polynomial Algorithm for Minimum Cost Flows." Mathematical Programming.
  3. NetworkX Documentation: "Algorithms for Flow". (2024). python.org
  4. Aevum Encyclopedia: Residual Graphs, Bipartite Matching

See Also