You have 3 free guides left 😟
Unlock your guides
You have 3 free guides left 😟
Unlock your guides

9.1 Maximum flow problem and Ford-Fulkerson algorithm

2 min readjuly 24, 2024

Network theory is all about maximizing flow through a system. The finds the most stuff we can push from a start point to an end point, following rules about how much each connection can handle.

The solves this by repeatedly finding paths to send more flow until we can't anymore. It's used in real-world situations like water systems and power grids to figure out the most efficient way to move resources around.

Understanding the Maximum Flow Problem

Components of maximum flow problem

Top images from around the web for Components of maximum flow problem
Top images from around the web for Components of maximum flow problem
  • Maximum flow problem optimizes network flow theory finds maximum amount of flow through network
  • Network components include (s) starts flow, (t) ends flow, edges connect nodes, nodes serve as vertices
  • c(u,v)c(u,v) limits maximum flow on edge (u,v)(u,v)
  • Flow f(u,v)f(u,v) represents amount passing through edge (u,v)(u,v)
  • ensure capacity constraint 0f(u,v)c(u,v)0 \leq f(u,v) \leq c(u,v) and flow conservation (incoming equals outgoing except source and sink)
  • shows remaining available capacity on edges (transportation networks, communication systems)

Ford-Fulkerson Algorithm and Its Application

Steps of Ford-Fulkerson algorithm

  1. Initialize flow to zero for all edges
  2. Find from source to sink in residual network
  3. Determine bottleneck capacity along augmenting path
  4. Update flow along augmenting path
  5. Update residual network
  6. Repeat steps 2-5 until no augmenting path exists
  • Augmenting path connects source to sink in residual network with available capacity
  • Bottleneck capacity represents minimum residual capacity along augmenting path
  • Algorithm terminates when no more augmenting paths exist in residual network (water supply systems, electrical grids)

Application of Ford-Fulkerson algorithm

  1. Draw initial network with capacities
  2. Create residual network
  3. Find augmenting path using depth-first search or breadth-first search
  4. Identify bottleneck capacity
  5. Update flow and residual network
  6. Repeat until no augmenting path exists
  • Applies to simple networks with few nodes and edges, complex networks with multiple intermediate nodes, networks with parallel edges, networks with bidirectional flows
  • Special cases include networks with multiple sources or sinks, networks with edge lower bounds (transportation routing, supply chain optimization)

Time complexity of Ford-Fulkerson algorithm

  • Worst-case time complexity O(Efmax)O(E \cdot |f_{max}|), EE represents number of edges, fmax|f_{max}| denotes maximum flow value
  • Time complexity depends on number of augmenting paths and choice of augmenting path selection method
  • Edmonds-Karp algorithm uses breadth-first search, time complexity O(VE2)O(VE^2), VV represents number of vertices
  • improves with blocking flows, time complexity O(V2E)O(V^2E)
  • Practical considerations include performance on sparse vs dense networks and impact of network structure on iterations (computer networks, social network analysis)
© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.


© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.

© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.
Glossary
Glossary