Overview

도로 교통을 예시로 생각해보자. 고속도로에서는 많은 자동차가 이동할 수 있는 반면, 골목길에서는 비교적 적은 수의 자동차가 이동할 수 있다. 이를 떠올리면 Network Flow를 이해하기 편할 것이다.

Network Flow

Network Flow(네트워크 플로우)는 한 vertex에서 다른 vertex까지 흐를 수 있는 데이터의 최대 크기가 어느 정도인지 확인하는 알고리즘이다.

용어 정의

Flow graph

Flow graph(플로우 그래프) $G$는 정점 $s$(source)와 $t$(sink)가 있는 directed graph이다.

$f(u,v)$와 $c(u,v)$를 $u$에서 $v$로 가는 edge의 유량과 용량이라고 하자. 다음 세 가지 속성을 만족한다.

Residual Graph

Residual Graph(잔여 그래프) $G_R$은 남은 capacity를 보여주는 flow graph이다.