The Ford-Fulkerson Method
Learn about the Ford-Fulkerson method of computing maximum flows.
This lesson will cover a general, high-level strategy to compute maximum flows, called the Ford-Fulkerson method.
Description of the method
Given a flow network , the Ford-Fulkerson method iteratively refines a flow in the graph, until it becomes a maximum flow.
In the beginning, the flow has value , or, for all edges .
We then search for a path from to through which we can still push at least a single unit of flow. Such a path is called an augmenting path. We can use it to update our flow to a flow of higher value. We repeat this procedure until no augmenting path exists, at which point our flow is maximum.
A first attempt of finding augmenting paths
So, let’s look into how we can identify augmenting paths. The first approach might be to look for an --path upon which each edge still has capacity remaining, or,
Let’s try this out in an example flow network.
There are several --augmenting paths, but let’s assume we decide on the path s -> a -> b -> t
. The flow that we can push through this path is , or the minimum of the edge capacities on it. After augmenting our flow in that way, we’ll arrive at the following network:
At this point, no further paths from to exists upon which every edge still has free capacity. However, the flow we’ve found so far is not a maximum flow. This means that our simple strategy of finding augmenting paths was not good enough.
The problem that we ran into here is that we made an incorrect decision by pushing two units of flow from to ...