We can move things from one place to another.
Imagine water moving through pipes.
Imagine you have a network of pipes.
People first used this math to study trains. In 1954, T. E. Harris and F. S. Ross studied railway traffic. They wanted to know how many trains could move between cities. Later, in 1955, Lester R. Ford, Jr. and Delbert R. Fulkerson made a way to solve it. We call this the Ford–Fulkerson algorithm.
There is a special rule called the max-flow min-cut theorem. It says the most flow you can send is limited by the smallest cut. A cut is a way to split the network in two. This helps us find the limit of the whole system. 
Imagine a complex web of pipes or roads connecting two distant points. Some paths are wide and can carry a huge amount of water or cars. Other paths are very narrow and can only handle a little bit. The maximum flow problem is a way to find the most you can move from the start to the end. 
There is a clever way to understand these limits using a concept called a cut. A cut is a line that splits the entire network into two separate sides. One side holds the start, and the other side holds the end. 
This math started with a very real problem involving trains. In 1954, T. E. Harris and F. S. Ross created a model for Soviet railway traffic. They wanted to understand how many trains could move through a rail network between cities. 
Since then, many smart people have found even faster ways to solve these networks. In 1969, Edmonds and Karp found a way to use shortest paths. Later, in 1970, Dinic created an algorithm using layered subgraphs. Other researchers like Goldberg and Tarjan worked on the push-relabel method.
We use these ideas in many parts of our daily lives. You might use them when matching people to pets, like finding the best homes for cats and dogs.
The maximum flow problem is a central challenge in optimization theory. It involves finding the highest possible rate of flow through a network. A flow network is a collection of connected points, called nodes, and the links between them, called edges. Think of this like a system of water pipes or a web of roads. Each edge has a specific capacity. This capacity is the maximum amount of flow that can pass through that specific link.
To solve this problem, a mathematical flow must follow two strict rules. The first rule is the capacity constraint. This means the flow on any edge cannot exceed its assigned capacity. The second rule is the conservation of flows. This rule states that for every node in the network, the total flow entering must equal the total flow exiting. The only exceptions to this rule are the source node, where flow begins, and the sink node, where flow ends. 
Finding the maximum flow is deeply connected to a concept called a cut. An s-t cut is a way of severing the network to separate the source from the sink. The capacity of a cut is the sum of the capacities of the edges that cross the cut. The max-flow min-cut theorem provides a vital link between these two ideas. It states that the maximum value of an s-t flow is exactly equal to the minimum capacity of an s-t cut. This theorem helps identify the bottleneck that limits the entire system. 
The history of this problem began with a practical need to manage transportation. In 1954, T. E. Harris and F. S. Ross formulated the problem as a model for Soviet railway traffic. They wanted to understand how much traffic could move through a rail network connecting two cities via intermediate cities. In 1955, Lester R. Ford, Jr. and Delbert R. Fulkerson created the first known solution. Their method, the Ford–Fulkerson algorithm, works by finding paths through a residual graph that still have available capacity. 
Over many decades, mathematicians have developed increasingly efficient algorithms to solve these networks. In 1969, Edmonds and Karp introduced a specialization that uses breadth-first search to find augmenting paths. In 1970, Dinic developed an algorithm that uses layered subgraphs and finds a blocking flow. Other significant methods include the push-relabel algorithm by Goldberg and Tarjan. This method maintains a preflow and uses a height function to move excess flow toward the sink.
Recent breakthroughs have focused on making these calculations even faster for massive networks. In 2013, James B. Orlin published an algorithm that improved upon previous bounds. In 2022, a large team including Li Chen and Rasmus Kyng published an almost-linear time algorithm. This new method solves both the maximum flow and the minimum-cost flow problems. Their work was recognized as a best paper at the 2022 Symposium on Foundations of Computer Science. 
The maximum flow problem is a special case of the more complex circulation problem. It can also be used to solve the minimum-cost flow problem. These mathematical tools allow us to solve real-world matching problems. For example, we can use flow networks to match humans with pets they are willing to adopt.
🖼️ Images & Media (9)
More to explore
✨ What else?
Related topics you might enjoy
🔬 Go deeper
More advanced topics to explore
🪜 Step back
Simpler topics to build understanding
What is Nepedia?
A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.