
- V는 정점(vectex)의 수, E는 간선(edge)의 수이다.
- s는 source를 의미한다. 물이 나오는 원천이라고 생각하면 된다.
- t는 sink를 의미한다. 물이 최종적으로 들어가는 곳이라 생각하면 된다. 모든 물(유량)은 source에서 sink로 흐른다.
- 두 정점을 잇는 간선은 해당 정점 사이에 흐를 수 있는 최대 물(유량)을 의미한다. s에서 1번 정점으로 0/10이라고 적혀 있는데, 여기서 10이 최대 유량이다.
- 잔여유량은 최대유량에서 현재 유량을 뺀 값이다. s에서 1번 정점으로 0/10인 것은 현재 유량이 0이고 따라서 잔여유량은 10이다.
유량의 대칭성(skew symmetry) : u→v로 f만큼의 유량이 흐르면 v→u로 -f만큼 유량이 흐른다고 생각한다.
-
포드-풀커슨 알고리즘(Ford–Fulkerson Algorithm)
-
에드몬드 카프 알고리즘(Edmonds-Karp Algorithm)
-
디닉 알고리즘(Dinic's Algorithm)
즉, DFS로 찾으면 $O(fE)$, BFS로 찾으면 $O(min(fE, VE^2))$,
둘 다 사용하여 찾으면 $O(min(fE,V^2E))$
디닉 알고리즘만 알아도 문제 푸는데는 별 문제 없을 듯 하다..