Algorithms And Data Structures Codexery

Ford–Fulkerson algorithm

Greedy algorithm for maximum flow in a network.

Ford–Fulkerson algorithm

The Ford–Fulkerson method, also called the Ford–Fulkerson algorithm (FFA), is a greedy algorithm for computing the maximum flow in a flow network. R. Ford Jr. and D. R. Fulkerson, it is sometimes referred to as a 'method' because the approach to finding augmenting paths in a residual graph is not fully specified, leading to several implementations with different running times.

field
Computer science, operations research
known_for
Maximum flow problem, Ford–Fulkerson algorithm
type
Algorithm

Lore & Background

The algorithm works by repeatedly finding a path from the source to the sink with available capacity on all edges—called an augmenting path—and sending flow along it. This process continues until no more augmenting paths can be found in the residual network, at which point the flow is maximal. The residual network is defined with capacities equal to the original capacity minus the current flow, and it may allow flow in directions not originally present.

Reader's Guide

The Ford–Fulkerson algorithm is foundational in network flow theory, underpinning many practical applications such as transportation, telecommunications, and bipartite matching. Its significance lies in its simplicity and the proof of optimality via the max-flow min-cut theorem. However, the algorithm's runtime is not guaranteed to terminate with irrational flow values; with integer capacities, the runtime is bounded by O(Ef), where E is the number of edges and f is the maximum flow. The Edmonds–Karp algorithm, a specific implementation using breadth-first search, is often also called Ford–Fulkerson. The method can be extended to handle multiple sources and sinks by adding a super-source and super-sink, and node capacity constraints by splitting nodes.

Did You Know?

More in Algorithms And Data Structures 1-24

Elsewhere in the Algorithms And Data Structures universe

Spotted an error? Know more?

This is a living reference — every entry is fact-audited, and reader corrections feed straight into our audit queue. Suggest an edit · See this site's audit record

Comments

Loading…
Open in the interactive codex →