어떤 문제를 푸는가
가중치 무방향 연결 그래프에서, 모든 정점을 연결하면서 간선 가중치 합이 최소
인 트리를 찾습니다. 도시들을 가장 싸게 도로로 잇기, 네트워크 최소 비용 연결
등이 전형적인 예입니다. 정점이 \(V\)개면 트리는 정확히 \(V-1\)개의 간선을 갖습니다.
두 가지 핵심 성질
MST 알고리즘의 정당성은 두 성질에서 나옵니다.
컷 성질 (Cut Property)
정점을 두 그룹으로 나눈 임의의 컷 에서, 그 컷을 가로지르는 간선 중 가장
가벼운 간선 은 어떤 MST에 반드시 포함됩니다.
직관: 그 가벼운 간선을 MST가 안 쓴다면, 컷을 가로지르는 다른(더 무거운)
간선을 쓰고 있어야 합니다. 그 무거운 간선을 빼고 가벼운 간선으로 바꾸면 여전히
트리이면서 비용이 줄어드니, 원래 것이 최소가 아니었다는 모순입니다.
사이클 성질 (Cycle Property)
어떤 사이클에서 가장 무거운 간선 은 어떤 MST에도 포함되지 않습니다.
이 두 성질이 그리디(가벼운 간선부터 채택)가 옳음을 보장합니다.
두 가지 표준 알고리즘
| 크루스칼 | 프림 | |
|---|---|---|
| 관점 | 간선 중심 | 정점 중심 |
| 자료구조 | 정렬 + 유니온 파인드 | 우선순위 큐 |
| 진행 | 가벼운 간선부터, 사이클 안 만들면 채택 | 트리에 가장 가까운 정점을 흡수 |
| 복잡도 | \(O(E \log E)\) | \(O(E \log V)\) |
| 유리한 경우 | 희소 그래프 | 조밀 그래프 |
크루스칼의 아이디어
간선을 가중치 오름차순으로 정렬하고, 가벼운 것부터 본다. 그 간선의 두 끝점이
아직 다른 그룹 이면(유니온 파인드로 확인) 채택하고 합친다. 같은 그룹이면
추가 시 사이클이 생기므로 버린다. 이는 컷 성질의 직접적 적용입니다.
프림의 아이디어
한 정점에서 시작해 트리를 키운다. 매번 트리와 트리 밖을 잇는 가장 가벼운
간선 을 골라 새 정점을 흡수한다(우선순위 큐로 관리). 다익스트라와 형제처럼
닮았지만, 거리가 아니라 "트리까지의 간선 가중치"를 기준으로 삼습니다.
복잡도 정리
- 크루스칼: 정렬 \(O(E \log E)\)가 지배. DSU는 거의 상수.
- 프림(힙): \(O(E \log V)\).
대부분의 경우 구현이 단순한 크루스칼을 기본으로 씁니다. 다음 강의에서 두
구현과 응용을 봅니다.