일반 그래프의 최대 매칭
이분 그래프에서는 증가 경로(augmenting path)를 BFS/DFS로 찾아 매칭을 키운다. 일반 그래프에서도 베르주 정리(Berge's theorem) 가 그대로 성립한다.
매칭 \(M\)이 최대 매칭일 필요충분조건은 \(M\)에 대한 증가 경로가 존재하지 않는 것이다.
문제는 증가 경로 탐색 자체다. 이분 그래프에서는 홀수 길이 사이클이 없어 단순 BFS로 충분하지만, 일반 그래프에는 홀수 사이클이 생긴다.
블로섬(blossom)이란
매칭 \(M\)이 주어졌을 때 노출 정점(매칭되지 않은 정점)에서 출발하는 교대 경로(alternating path)를 생각하자. 정점을 출발점으로부터의 거리 홀짝에 따라 odd/even으로 분류한다.
탐색 도중 두 even 정점 \(u, v\) 사이에 간선이 발견되고, 둘이 공통 조상 \(b\)(베이스)를 가지면, 길이 \(2k+1\)의 홀수 사이클이 만들어진다. 이 사이클을 블로섬이라 부른다.
핵심 통찰: 블로섬 안의 모든 정점은 베이스를 통해 even 상태로 도달 가능하다. 따라서 블로섬 전체를 하나의 슈퍼 정점으로 수축(contract) 해도 증가 경로의 존재 여부가 보존된다.
수축의 정당성
블로섬 \(B\)를 수축한 그래프를 \(G/B\)라 하자. 에드몬즈의 정리:
\(G/B\)에 증가 경로가 있을 필요충분조건은 \(G\)에 증가 경로가 있는 것이다.
증명 스케치: 블로섬은 베이스를 제외한 모든 정점이 사이클 내부에서 매칭되어 있으므로, 슈퍼 정점을 지나는 경로는 블로섬 둘레를 따라 적절한 방향으로 펼치면 항상 원본 그래프의 교대 경로로 복원된다. 홀수 둘레 덕분에 양쪽 방향 중 하나는 반드시 매칭 간선으로 시작/끝난다.
알고리즘 골격
- 노출 정점에서 BFS로 교대 숲(forest)을 만든다.
even–even간선을 만나면:
- 서로 다른 트리면 → 증가 경로 발견, 따라 가며 \(M\) 반전.
- 같은 트리면 → 블로섬 발견, LCA를 베이스로 수축.- 더 이상 증가 경로가 없을 때까지 반복.
복잡도
각 노출 정점에서의 탐색이 \(O(V^2)\), 노출 정점이 \(O(V)\)개이므로 단순 구현은 \(O(V^3)\). 실제 구현에서는 union-find로 블로섬을 관리해 \(O(VE)\) 또는 그 이하로 줄인다.
| 항목 | 이분 그래프 | 일반 그래프 |
|---|---|---|
| 핵심 난점 | 없음 | 홀수 사이클 |
| 도구 | BFS | 블로섬 수축 |
| 복잡도 | \(O(VE)\) | \(O(V^3)\) |
다음 강의에서 union-find 기반의 구현을 본다.