네트워크 통신에는 대역폭이 있기 때문에 하나의 최단 경로로 보내는 것보다, 일부가 더 긴 경로를 돌아오더라도 패킷을 여러 경로로 나눠서 보내는 것이 더 이득일 수 있다.

그림을 보면 s → a → c → t 로 보내면 s→a 에서 16을 보낸다고 해도 c → t 의 대역폭이 10이기 때문에 10만 전송된다.
그림 (b)처럼 보내면 17을 보낼 수 있다.
이처럼 얼마나 많은 유량(흐름)을 보낼 수 있는지 계산하는 문제이다.
정점 u에서 v로 가는 간선의 용량을 c(u,v), 실제 흐르는 유량을 f(u,v)라고 할 때,