A topic in the Open Knowledge Graph — a free, open map of 15,290 topics and the order to learn them in.

Network Flows: Maximum Flow and Minimum Cut

College Depth 82 in the knowledge graph ☐ I know this ☆ Set as goal
14topics build on this
397prerequisites beneath it
See this on the map →
Graph Matching and Hall's Marriage Theorem→→Trees, Forests, and Spanning TreesWalks, Trails, Paths, and Cycles in Graphs
graph-theory flows

Core Idea

In a flow network, edges have capacity constraints and carry flow values. A maximum flow is the largest total flow from source to sink. The max-flow min-cut theorem states that the maximum flow equals the minimum capacity of any cut separating source from sink.

Explainer

Imagine water flowing through a network of pipes from a source (where water enters) to a sink (where it exits). Each pipe has a capacity — a maximum amount it can carry. You want to push as much total flow as possible from source to sink while respecting every capacity constraint. This is the maximum flow problem, and it sits at the intersection of graph theory, linear programming, and combinatorial optimization.

A flow assigns a non-negative value f(e) to each edge e, subject to two rules: (1) capacity constraints — f(e) ≤ cap(e) for every edge, and (2) flow conservation — for every internal node (not source or sink), the total flow in equals the total flow out. The value of a flow is the total amount leaving the source. The problem is to find a flow of maximum value. The algorithmic workhorse is Ford-Fulkerson: repeatedly find an augmenting path — a path from source to sink with remaining capacity on every edge — and push more flow along it. The process terminates when no augmenting path exists, at which point the flow is maximum. The residual graph tracks remaining capacity on forward edges and the possibility of "un-sending" flow on backward edges, which is what allows the algorithm to correct earlier suboptimal routing decisions.

The deep structural result is the max-flow min-cut theorem: the maximum value of any flow equals the minimum capacity of any cut. A cut is a partition of the vertices into two sets S (containing the source) and T (containing the sink); its capacity is the total capacity of edges going from S to T. Every cut imposes an upper bound on all flows (you can only send as much as crosses the cut), and the theorem says the tightest of these bounds is actually achievable. Ford-Fulkerson terminates precisely when it has found a flow equal to the minimum cut, providing a simultaneous certificate of optimality: here is the flow achieving the maximum, and here is the cut proving no larger flow is possible.

Network flow has immediate practical applications. If you've studied Hall's theorem for bipartite matching (your prerequisite), you can see bipartite matching as a special flow problem: add a source connected to all left vertices, connect all right vertices to a sink, and assign all edges capacity 1. A maximum matching corresponds exactly to a maximum flow, and Hall's condition corresponds to the min-cut condition. This unification is one of the most elegant aspects of combinatorial optimization — many seemingly different problems (matching, assignment, transportation, scheduling) are all instances of the same flow framework, and fast flow algorithms solve them all.

Practice Questions 5 questions

Prerequisite Chain

Understanding Zero → The Number Zero → Counting to Five → Counting to 10 → Counting to 20 → Counting a Set of Objects Up to 20 → Cardinality: The Last Number Counted → Matching Numerals to Quantities → Subitizing Small Quantities → Addition Within 10 → Number Bonds to 10 → Addition Within 20 → Doubles and Near Doubles → Doubles Facts Within 10 → Near Doubles Facts Within 20 → Mental Math Strategies for Addition → Mental Math: Adding and Subtracting Tens → Addition Within 100 → Repeated Addition as Multiplication → Multiplication as Equal Groups → Multiplication: Arrays → Basic Multiplication Facts (0s, 1s, 2s, 5s, 10s) → Multiplication Facts Within 100 → Division as Equal Sharing → Division as Grouping (Measurement Division) → Division: Grouping (Repeated Subtraction) Model → Division: Fair Sharing Model → Division as Equal Sharing → Division as Grouping → Basic Division Facts → Division Facts Within 100 → Multiplication and Division Fact Families → Relationship Between Multiplication and Division → Division Facts as Inverse of Multiplication → Remainders and Quotients in Division → Division Word Problems → Multi-Step Word Problems → Solving Multi-Step Word Problems → Multiplication Word Problems → Division Word Problems → Introduction to Long Division → Factors and Multiples → Prime and Composite Numbers → Equivalent Fractions → Relating Fractions and Decimals → Decimal Place Value → Integers and the Number Line → Comparing and Ordering Integers → Absolute Value → Adding Integers → Subtracting Integers → Multiplying Integers → Introduction to Exponents → Order of Operations → Integer Order of Operations → Variable Expressions → The Distributive Property → Variables and Expressions Review → Introduction to Polynomials → Adding and Subtracting Polynomials → Multiplying Polynomials → Factorial → Permutations → Combinations → Counting Principles: Addition and Multiplication Rules → Introduction to Graph Theory → Propositional Logic Foundations → Logical Equivalences → Set Operations: Union, Intersection, and Complement → Proof by Cases → Proving by Cases and Exhaustion → Vacuous Truth and Trivial Cases → Proof by Cases (Proof by Exhaustion) → Mathematical Induction → Graph Paths, Cycles, and Connectivity → Trees and Spanning Trees → Planar Graphs and Euler's Formula → Graph Coloring and the Chromatic Number → Graph Coloring and Chromatic Numbers → Bipartite Graphs and Matching Problems → Bipartite Graphs and 2-Colorability → Graph Matching and Hall's Marriage Theorem → Network Flows: Maximum Flow and Minimum Cut

Longest path: 83 steps · 397 total prerequisite topics

Prerequisites (1)

Leads To (2)