문제
\(n\times n\) 비용 행렬 \(c_{ij}\) (\(i\)번 일꾼을 \(j\)번 일에 배정하는 비용)에서, 각 일꾼이 서로 다른 일 하나씩을 맡는 완전 매칭 중 총비용을 최소화하는 배정을 찾는다. 이분 그래프의 최소 가중 완전 매칭이며, 헝가리안(쿤-멍크레스) 알고리즘이 \(O(n^3)\) 에 푼다.
쌍대성과 potential
선형계획 쌍대를 도입한다. 각 행 \(i\) 에 잠재값 \(u_i\), 각 열 \(j\) 에 \(v_j\) 를 두고 항상
$$ u_i + v_j \le c_{ij} $$
를 유지한다(쌍대 실현가능). reduced cost \(c_{ij} - u_i - v_j \ge 0\) 이 0인 간선(tight edge)만으로 완전 매칭이 구성되면, 상보여유정리에 의해 그 매칭이 최적이다. 알고리즘은 잠재값을 조금씩 올리며 tight edge를 늘려, 마침내 완전 매칭을 만든다.
증대 경로(augmenting path)
현재 tight edge 그래프에서 매칭되지 않은 행을 출발점으로 교대 경로를 찾는다. 매칭에 새 행을 추가할 증대 경로를 못 찾으면, 도달 가능한 행/열 집합으로 잠재값을 조정한다:
$$ \Delta = \min_{\substack{i \in S,\ j \notin T}} (c_{ij} - u_i - v_j),\qquad u_i \mathrel{+}= \Delta\ (i\in S),\quad v_j \mathrel{-}= \Delta\ (j\in T). $$
이 조정으로 적어도 하나의 새 tight edge가 생겨 탐색 트리가 확장된다. 각 행을 매칭에 넣을 때마다 \(O(n)\) 번의 잠재값 조정, 조정마다 \(O(n)\) 작업 → 행당 \(O(n^2)\), 전체 \(O(n^3)\).
정확성
알고리즘 종료 시 모든 행이 매칭되고 모든 간선이 \(u_i+v_j\le c_{ij}\), 매칭 간선은 등호를 만족한다. 임의의 실현가능 매칭 \(M'\) 에 대해
$$ \sum_{(i,j)\in M'} c_{ij} \ge \sum_i u_i + \sum_j v_j = \sum_{(i,j)\in M} c_{ij} $$
이므로 \(M\) 이 최소. (약쌍대성에서 등호 달성.)
복잡도와 변형
| 항목 | 값 |
|---|---|
| 시간 | \(O(n^3)\) |
| 직사각(\(n\le m\)) | \(O(n^2\ m)\) |
| 최대화 | 비용 부호 반전 또는 \(C-c_{ij}\) |