그래프 이론 (Graph Theory)
그래프 이론은 꼭짓점(Vertex)과 변(Edge)으로 이루어진 그래프를 연구하는 수학 분야입니다. 네트워크, 경로 탐색, 최적화 등 다양한 응용이 있으며, 컴퓨터 과학, 통신, 생물학, 사회학 등 폭넓은 분야에서 활용됩니다.
일상 속에서 그래프는 어디에나 있습니다. SNS에서 사람들이 "친구"인 관계, 도시와 도시를 잇는 도로망, 컴퓨터들이 연결된 인터넷 네트워크 — 이 모든 것이 그래프입니다. 사람(또는 도시, 컴퓨터)을 점으로, 관계(또는 도로, 케이블)를 선으로 나타내면 복잡한 현실 세계를 깔끔한 수학 구조로 표현할 수 있습니다.
이런 곳에 쓰여요
- 내비게이션: 최단 경로 알고리즘(다익스트라)으로 목적지까지 최적 경로 탐색
- SNS: 인스타그램 팔로우 관계를 방향 그래프로 분석하여 추천 친구 제안
- 물류: 택배 배송 경로를 최적화하는 외판원 문제(TSP)
- 전력망: 발전소에서 가정까지 전력을 효율적으로 분배하는 네트워크 흐름 문제
선수 지식: 이산수학
난이도: ★★★☆☆ (고등학교 심화)
그래프의 정의와 종류
그래프(Graph) $G = (V, E)$는 꼭짓점의 집합 $V$와 변의 집합 $E$로 구성됩니다. 변은 두 꼭짓점을 연결합니다.
그래프의 종류
| 종류 | 설명 | 예시 |
|---|---|---|
| 무방향 그래프 | 변에 방향이 없습니다: $\{u, v\} \in E$ | 친구 관계 네트워크 |
| 방향 그래프(Digraph) | 변에 방향이 있습니다: $(u, v) \in E$ | 웹 페이지 링크 |
| 가중 그래프 | 변에 가중치(Weight)가 부여됩니다 | 도로 네트워크 (거리) |
| 단순 그래프 | 자기 루프와 다중 변이 없습니다 | 대부분의 이론적 그래프 |
| 완전 그래프 $K_n$ | 모든 꼭짓점 쌍이 변으로 연결됩니다 | $K_4$: 변 6개 |
| 이분 그래프 | 꼭짓점을 두 그룹으로 나누어 같은 그룹 내 변이 없습니다 | 작업 배정 문제 |
| 다중 그래프 | 두 꼭짓점 사이에 여러 변이 허용됩니다 | 쾨니히스베르크 다리 |
부분그래프 (Subgraph)
그래프 $G = (V, E)$의 부분그래프(Subgraph) $H = (V', E')$는 $V' \subseteq V$이고 $E' \subseteq E$인 그래프입니다. 특히:
- 유도 부분그래프(Induced Subgraph): $V' \subseteq V$에 대해 $E' = \{\{u,v\} \in E \mid u, v \in V'\}$, 즉 $V'$에 속하는 꼭짓점들 사이의 모든 변을 포함합니다.
- 신장 부분그래프(Spanning Subgraph): $V' = V$이고 $E' \subseteq E$인 부분그래프입니다.
차수와 그래프 표현
차수 (Degree)
꼭짓점 $v$의 차수(Degree) $\deg(v)$는 $v$에 연결된 변의 수입니다.
| 개념 | 기호 | 설명 |
|---|---|---|
| 차수 | $\deg(v)$ | $v$에 연결된 변의 수 |
| 최소 차수 | $\delta(G)$ | $\min_{v \in V} \deg(v)$ |
| 최대 차수 | $\Delta(G)$ | $\max_{v \in V} \deg(v)$ |
| 내차수 (방향) | $\deg^{-}(v)$ | $v$로 들어오는 변의 수 |
| 외차수 (방향) | $\deg^{+}(v)$ | $v$에서 나가는 변의 수 |
| 정규 그래프 | $k$-정규 | 모든 꼭짓점의 차수가 $k$ |
악수 정리(Handshaking Lemma): 모든 그래프에서 차수의 합은 변의 수의 2배입니다.
$$\sum_{v \in V} \deg(v) = 2|E|$$방향 그래프의 경우:
$$\sum_{v \in V} \deg^{+}(v) = \sum_{v \in V} \deg^{-}(v) = |E|$$인접 행렬 (Adjacency Matrix)
$n$개의 꼭짓점을 가진 그래프 $G$의 인접 행렬 $A$는 $n \times n$ 행렬로, $A_{ij} = 1$이면 꼭짓점 $i$와 $j$ 사이에 변이 존재합니다.
예시: 꼭짓점 $\{1, 2, 3, 4\}$, 변 $\{1{-}2, 2{-}3, 3{-}4, 1{-}4\}$인 순환 그래프 $C_4$의 인접 행렬:
$$A = \begin{pmatrix} 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 \end{pmatrix}$$| 성질 | 설명 |
|---|---|
| 대칭성 | 무방향 그래프의 인접 행렬은 대칭: $A = A^T$ |
| 경로 수 | $A^k$의 $(i,j)$ 성분은 $i$에서 $j$로 가는 길이 $k$인 보행의 수 |
| 공간 복잡도 | $O(V^2)$ — 밀집 그래프에 적합 |
인접 리스트 (Adjacency List)
각 꼭짓점에 대해 인접한 꼭짓점의 목록을 저장합니다. 위 예시의 인접 리스트:
| 꼭짓점 | 인접 목록 |
|---|---|
| $1$ | $[2, 4]$ |
| $2$ | $[1, 3]$ |
| $3$ | $[2, 4]$ |
| $4$ | $[3, 1]$ |
| 비교 항목 | 인접 행렬 | 인접 리스트 |
|---|---|---|
| 공간 | $O(V^2)$ | $O(V + E)$ |
| 변 존재 확인 | $O(1)$ | $O(\deg(v))$ |
| 모든 이웃 탐색 | $O(V)$ | $O(\deg(v))$ |
| 적합한 경우 | 밀집 그래프 | 희소 그래프 |
이분 그래프 (Bipartite Graph)
이분 그래프는 꼭짓점 집합을 두 부분 $V = X \cup Y$ ($X \cap Y = \emptyset$)로 나누어 모든 변이 $X$와 $Y$ 사이를 연결하는 그래프입니다.
BFS/DFS를 이용한 2-색칠로 $O(V+E)$ 시간에 판정할 수 있습니다.
완전 이분 그래프 $K_{m,n}$: $|X| = m$, $|Y| = n$이고 $X$와 $Y$의 모든 꼭짓점 쌍이 연결된 그래프. 변의 수는 $m \cdot n$입니다.
경로와 순환
기본 개념
| 용어 | 정의 | 꼭짓점 반복 | 변 반복 |
|---|---|---|---|
| 보행(Walk) | 꼭짓점과 변의 교대 수열 | 허용 | 허용 |
| 트레일(Trail) | 변이 반복되지 않는 보행 | 허용 | 불허 |
| 경로(Path) | 꼭짓점이 반복되지 않는 보행 | 불허 | 불허 |
| 순환(Cycle) | 시작점 = 끝점인 경로 (길이 $\geq 3$) | 시작/끝만 | 불허 |
- 연결(Connected): 무방향 그래프에서 모든 꼭짓점 쌍 사이에 경로가 존재
- 강연결(Strongly Connected): 방향 그래프에서 모든 꼭짓점 쌍 $(u, v)$에 대해 $u \to v$와 $v \to u$ 경로 모두 존재
- 연결 성분(Connected Component): 극대 연결 부분그래프
오일러 경로와 회로
정의
- 오일러 트레일(Euler Trail): 그래프의 모든 변을 정확히 한 번씩 지나는 트레일
- 오일러 회로(Euler Circuit): 시작점으로 돌아오는 오일러 트레일
오일러 정리
- $G$에 오일러 회로가 존재 $\iff$ 모든 꼭짓점의 차수가 짝수
- $G$에 오일러 트레일이 존재 $\iff$ 차수가 홀수인 꼭짓점이 정확히 0개 또는 2개
증명 스케치 (오일러 회로)
($\Rightarrow$) 오일러 회로가 존재하면, 회로가 각 꼭짓점을 지날 때마다 들어오는 변과 나가는 변이 쌍을 이루므로 모든 차수는 짝수입니다.
($\Leftarrow$) 모든 차수가 짝수인 연결 그래프에서, 임의의 꼭짓점 $v$에서 출발하여 더 이상 진행할 수 없을 때까지 변을 따라갑니다. 차수가 짝수이므로 반드시 $v$로 돌아옵니다. 아직 사용하지 않은 변이 남아 있다면, 이미 방문한 꼭짓점 중 미사용 변이 있는 곳에서 새 회로를 만들어 합칩니다. 그래프가 연결이므로 이 과정을 반복하면 모든 변을 커버합니다.
쾨니히스베르크 다리 문제 — 그래프 이론의 탄생
1736년 스위스의 수학자 레온하르트 오일러는 이 문제를 풀기 위해 각 지역을 점으로, 다리를 선으로 추상화했습니다. 이 천재적인 발상이 그래프 이론이라는 새로운 수학 분야를 탄생시켰습니다.
1736년 오일러(Euler)는 프로이센의 쾨니히스베르크에 있는 7개의 다리를 모두 정확히 한 번씩 건너서 출발점으로 돌아올 수 있는지 연구했습니다.
이 그래프에서 모든 꼭짓점의 차수가 3(홀수)이므로, 오일러 회로도 오일러 트레일도 존재하지 않습니다. 이것이 그래프 이론의 탄생으로 여겨집니다.
해밀턴 경로
오일러 문제가 "모든 길(간선)을 한 번씩 지나라"는 것이었다면, 해밀턴 문제는 "모든 장소(꼭짓점)를 한 번씩 방문하라"는 것입니다. 비슷해 보이지만 난이도가 완전히 다릅니다. 오일러 문제는 차수만 확인하면 답을 알 수 있지만, 해밀턴 문제는 아직까지 빠른 판별법이 알려져 있지 않습니다.
정의
- 해밀턴 경로(Hamiltonian Path): 모든 꼭짓점을 정확히 한 번씩 방문하는 경로
- 해밀턴 순환(Hamiltonian Cycle): 시작점으로 돌아오는 해밀턴 경로
오일러 경로(변 기반)와 달리 해밀턴 경로(꼭짓점 기반)의 존재를 판정하는 효율적인 알고리즘은 알려져 있지 않습니다 (NP-완전 문제).
오일러 vs 해밀턴 비교
| 구분 | 오일러 | 해밀턴 |
|---|---|---|
| 대상 | 모든 변을 한 번씩 | 모든 꼭짓점을 한 번씩 |
| 판정 | 다항 시간 (차수 확인) | NP-완전 |
| 충분조건 | 필요충분조건 있음 | 충분조건만 알려짐 |
디랙 정리 (Dirac's Theorem, 1952)
예시: $K_5$에서 $n = 5$, 모든 차수가 $4 \geq 5/2 = 2.5$이므로 해밀턴 순환이 존재합니다.
오레 정리 (Ore's Theorem, 1960)
오레 정리는 디랙 정리의 일반화입니다. 디랙 조건 $\deg(v) \geq n/2$를 만족하면 자동으로 오레 조건도 만족합니다.
트리
가계도를 떠올려 봅시다. 할아버지 → 아버지 → 나 → 내 자녀... 이 관계에서 조상과 자손이 돌고 도는 루프는 없습니다. 컴퓨터의 파일 시스템도 마찬가지입니다. 최상위 폴더(C: 또는 /) 아래에 하위 폴더들이 나뭇가지처럼 뻗어나갑니다. 임의의 파일에 도달하는 경로는 항상 하나뿐입니다.
이처럼 트리는 "모든 것이 딱 하나의 경로로 연결되고, 빙빙 도는 순환이 없는" 가장 경제적인 연결 구조입니다. 꼭짓점 $n$개를 연결하는 데 최소한의 간선 $n-1$개만 사용합니다.
트리(Tree)는 순환이 없는 연결 그래프입니다.
트리의 동치 조건
$n$개의 꼭짓점을 가진 그래프 $G$에 대하여 다음은 모두 동치입니다:
- $G$는 트리입니다 (연결 + 순환 없음).
- $G$는 연결이고 $|E| = n - 1$입니다.
- $G$는 순환이 없고 $|E| = n - 1$입니다.
- 임의의 두 꼭짓점 사이에 유일한 경로가 존재합니다.
- $G$는 연결이고, 어떤 변이든 하나를 제거하면 비연결이 됩니다.
- $G$는 순환이 없고, 어떤 변이든 하나를 추가하면 정확히 하나의 순환이 생깁니다.
트리의 성질
- $n$개의 꼭짓점을 가진 트리는 정확히 $n - 1$개의 변을 가집니다.
- 2개 이상의 꼭짓점을 가진 트리에는 반드시 차수가 1인 꼭짓점(잎, leaf)이 2개 이상 존재합니다.
- 케일리 공식(Cayley's Formula): $n$개의 레이블된 꼭짓점으로 만들 수 있는 트리의 수는 $n^{n-2}$개입니다.
| $n$ | $n^{n-2}$ | 설명 |
|---|---|---|
| 2 | 1 | 유일한 트리: 변 하나 |
| 3 | 3 | 경로 그래프 3가지 방향 |
| 4 | 16 | 별 그래프 4개 + 경로 12개 |
| 5 | 125 | 다양한 구조 포함 |
프뤼퍼 수열 (Prufer Sequence)
$n$개의 레이블된 꼭짓점으로 이루어진 트리와 길이 $n-2$인 수열 $\{1, 2, \ldots, n\}^{n-2}$ 사이에 전단사 함수가 존재합니다. 이것이 케일리 공식의 한 증명입니다.
트리 $\to$ 프뤼퍼 수열 알고리즘:
- 트리에서 레이블이 가장 작은 잎(leaf)을 찾습니다.
- 그 잎에 연결된 꼭짓점의 레이블을 수열에 추가합니다.
- 잎을 제거합니다.
- 꼭짓점이 2개 남을 때까지 반복합니다.
예시: 꼭짓점 $\{1,2,3,4,5,6\}$, 변 $\{1{-}4, 2{-}4, 3{-}5, 4{-}5, 5{-}6\}$인 트리:
| 단계 | 가장 작은 잎 | 연결된 꼭짓점 | 수열 |
|---|---|---|---|
| 1 | 1 | 4 | $(4)$ |
| 2 | 2 | 4 | $(4, 4)$ |
| 3 | 3 | 5 | $(4, 4, 5)$ |
| 4 | 4 | 5 | $(4, 4, 5, 5)$ |
프뤼퍼 수열: $(4, 4, 5, 5)$. 수열에서 트리를 복원하는 것도 가능합니다.
신장 트리 (Spanning Tree)
그래프 $G$의 모든 꼭짓점을 포함하면서 트리인 부분그래프를 신장 트리라 합니다.
- 연결 그래프는 반드시 신장 트리를 가집니다.
- 신장 트리의 변의 수는 항상 $|V| - 1$입니다.
- 키르히호프 정리(Kirchhoff's Theorem): 그래프의 신장 트리의 수는 라플라시안 행렬의 여인수(cofactor)로 계산할 수 있습니다.
최단 경로 알고리즘
비유하자면, 연못에 돌을 던졌을 때 물결이 퍼지는 것과 비슷합니다. 출발점에서 파문이 시작되어, 가장 가까운 지점부터 순서대로 도달합니다. 멀리 있는 지점은 나중에 파문이 닿습니다.
알고리즘 비교
| 알고리즘 | 유형 | 조건 | 시간 복잡도 |
|---|---|---|---|
| BFS | 단일 출발 | 가중치 없는 그래프 | $O(V + E)$ |
| 다익스트라 | 단일 출발 | 음이 아닌 가중치 | $O((V + E) \log V)$ |
| 벨만-포드 | 단일 출발 | 음의 가중치 허용 | $O(VE)$ |
| 플로이드-워셜 | 모든 쌍 | 음의 순환 없음 | $O(V^3)$ |
다익스트라 알고리즘 (Dijkstra's Algorithm)
음이 아닌 가중치를 가진 그래프에서 한 출발점으로부터 모든 꼭짓점까지의 최단 거리를 구합니다.
알고리즘:
- 출발점의 거리를 0, 나머지를 $\infty$로 초기화합니다.
- 방문하지 않은 꼭짓점 중 거리가 가장 작은 꼭짓점 $u$를 선택합니다.
- $u$의 각 이웃 $v$에 대해, $\text{dist}[u] + w(u,v) < \text{dist}[v]$이면 갱신합니다.
- 모든 꼭짓점을 방문할 때까지 반복합니다.
단계별 예시: 다음 그래프에서 꼭짓점 $A$로부터의 최단 거리를 구해 봅시다.
1단계: 출발점 $A$의 거리를 0으로 놓고, 나머지는 모두 $\infty$(무한대)로 설정합니다.
2단계: $A$를 방문하고, $A$에서 갈 수 있는 $B$(거리 4)와 $C$(거리 2)를 갱신합니다.
3단계: 아직 방문하지 않은 꼭짓점 중 거리가 가장 작은 $C$(거리 2)를 방문합니다. $C$를 거쳐 $B$로 가면 $2+1=3$으로 기존 4보다 짧으므로 갱신합니다. $C$를 거쳐 $E$로 가면 $2+8=10$입니다.
4단계: 다음으로 가까운 $B$(거리 3)를 방문합니다. $B$를 거쳐 $D$로 가면 $3+5=8$입니다.
5단계: $D$(거리 8)를 방문하고, $D$를 거쳐 $E$로 가면 $8+2=10$으로 기존과 같습니다.
6단계: 마지막 $E$(거리 10)를 방문하여 완료합니다.
| 단계 | 방문 | $d(A)$ | $d(B)$ | $d(C)$ | $d(D)$ | $d(E)$ |
|---|---|---|---|---|---|---|
| 초기 | - | $0$ | $\infty$ | $\infty$ | $\infty$ | $\infty$ |
| 1 | $A$ | $0$ | $4$ | $2$ | $\infty$ | $\infty$ |
| 2 | $C$ | $0$ | $3$ | $2$ | $\infty$ | $10$ |
| 3 | $B$ | $0$ | $3$ | $2$ | $8$ | $10$ |
| 4 | $D$ | $0$ | $3$ | $2$ | $8$ | $10$ |
| 5 | $E$ | $0$ | $3$ | $2$ | $8$ | $10$ |
벨만-포드 알고리즘 (Bellman-Ford Algorithm)
음의 가중치를 허용하며, 음의 순환도 감지할 수 있습니다.
- 출발점의 거리를 0, 나머지를 $\infty$로 초기화합니다.
- 모든 변 $(u, v)$에 대해 완화(relaxation)를 수행합니다: $\text{dist}[v] = \min(\text{dist}[v], \text{dist}[u] + w(u,v))$
- 위 과정을 $|V| - 1$번 반복합니다.
- 한 번 더 반복했을 때 갱신이 일어나면 음의 순환이 존재합니다.
플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm)
모든 꼭짓점 쌍 사이의 최단 거리를 구합니다. 동적 프로그래밍 기반입니다.
$$d_{ij}^{(k)} = \min\left(d_{ij}^{(k-1)},\; d_{ik}^{(k-1)} + d_{kj}^{(k-1)}\right)$$$d_{ij}^{(k)}$: 중간 꼭짓점으로 $\{1, 2, \ldots, k\}$만 사용할 때 $i$에서 $j$까지의 최단 거리
핵심 코드 (의사 코드):
for k = 1 to n:
for i = 1 to n:
for j = 1 to n:
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])
최소 신장 트리 (MST)
가중 연결 그래프에서 모든 꼭짓점을 연결하면서 변의 가중치 합이 최소인 신장 트리를 최소 신장 트리(Minimum Spanning Tree)라 합니다.
절단 성질 (Cut Property)
그래프의 꼭짓점을 두 집합 $S$와 $V \setminus S$로 나눈 절단(Cut)에서, 절단을 지나는 변 중 가중치가 최소인 변은 반드시 어떤 MST에 포함됩니다.
크루스칼 알고리즘 (Kruskal's Algorithm)
- 모든 변을 가중치 오름차순으로 정렬합니다.
- 가중치가 작은 변부터 선택하되, 순환이 생기지 않으면 추가합니다.
- $|V| - 1$개의 변이 선택될 때까지 반복합니다.
시간 복잡도: $O(E \log E)$ (정렬이 지배). 순환 판정에는 분리 집합(Union-Find) 자료구조를 사용합니다.
프림 알고리즘 (Prim's Algorithm)
- 임의의 꼭짓점에서 시작합니다.
- 이미 선택된 꼭짓점 집합과 나머지를 연결하는 변 중 가중치가 최소인 변을 선택합니다.
- $|V| - 1$개의 변이 선택될 때까지 반복합니다.
시간 복잡도: $O((V + E) \log V)$ (우선순위 큐 사용 시)
크루스칼 vs 프림
| 비교 항목 | 크루스칼 | 프림 |
|---|---|---|
| 접근 방식 | 변 중심 (전역 탐욕) | 꼭짓점 중심 (지역 성장) |
| 자료구조 | Union-Find | 우선순위 큐 |
| 시간 복잡도 | $O(E \log E)$ | $O((V+E)\log V)$ |
| 적합한 경우 | 희소 그래프 | 밀집 그래프 |
크루스칼 단계별 예시:
변 목록: $(A,B,1)$, $(B,C,4)$, $(A,C,3)$, $(C,D,2)$, $(B,D,5)$
| 단계 | 변 | 가중치 | 순환? | 선택 |
|---|---|---|---|---|
| 1 | $A{-}B$ | 1 | 아니오 | 선택 |
| 2 | $C{-}D$ | 2 | 아니오 | 선택 |
| 3 | $A{-}C$ | 3 | 아니오 | 선택 |
| 4 | $B{-}C$ | 4 | 예 | 건너뜀 |
| 5 | $B{-}D$ | 5 | 예 | 건너뜀 |
MST 가중치 합: $1 + 2 + 3 = 6$
네트워크 흐름
흐름 네트워크의 정의
흐름 네트워크(Flow Network)는 방향 그래프 $G = (V, E)$에 다음이 주어진 것입니다:
- 용량 함수(Capacity) $c: E \to \mathbb{R}_{\geq 0}$: 각 변의 최대 흐름량
- 소스(Source) $s$: 흐름이 시작되는 꼭짓점
- 싱크(Sink) $t$: 흐름이 도착하는 꼭짓점
유효한 흐름 $f: E \to \mathbb{R}_{\geq 0}$은 다음을 만족합니다:
- 용량 제약: $0 \leq f(u,v) \leq c(u,v)$ (모든 변에 대해)
- 흐름 보존: $s, t$를 제외한 모든 꼭짓점 $v$에 대해 $\sum_{u} f(u,v) = \sum_{w} f(v,w)$
최대 흐름-최소 절단 정리 (Max-Flow Min-Cut Theorem)
여기서 $s$-$t$ 절단은 $V$를 $S$와 $\bar{S} = V \setminus S$로 나누어 $s \in S$, $t \in \bar{S}$인 분할이며, 절단의 용량은 $S$에서 $\bar{S}$로 가는 변의 용량 합입니다.
포드-풀커슨 방법
- 초기 흐름을 0으로 설정합니다.
- 잔여 그래프(Residual Graph)에서 $s$에서 $t$로의 증가 경로(Augmenting Path)를 찾습니다.
- 증가 경로를 따라 흐름을 증가시킵니다.
- 증가 경로가 없을 때까지 반복합니다.
에드몬드-카프(Edmonds-Karp) 알고리즘은 BFS로 증가 경로를 찾아 시간 복잡도 $O(VE^2)$를 보장합니다.
그래프 색칠
그래프로 바꿔 생각하면, 각 나라를 꼭짓점으로, 국경을 공유하면 간선으로 연결한 그래프에서 "인접한 꼭짓점이 같은 색이 되지 않게 칠하기"에 해당합니다.
그래프 색칠(Graph Coloring)은 인접한 꼭짓점이 같은 색을 갖지 않도록 꼭짓점에 색을 배정하는 것입니다.
색수 (Chromatic Number)
그래프 $G$의 색수(Chromatic Number) $\chi(G)$는 적절한 색칠에 필요한 최소 색의 수입니다.
| 그래프 | 색수 | 설명 |
|---|---|---|
| $K_n$ (완전 그래프) | $\chi(K_n) = n$ | 모든 꼭짓점이 서로 인접 |
| $C_n$ ($n$ 짝수) | $\chi(C_n) = 2$ | 이분 그래프 |
| $C_n$ ($n$ 홀수) | $\chi(C_n) = 3$ | 이분 그래프가 아님 |
| 트리 ($n \geq 2$) | $\chi(T) = 2$ | 이분 그래프 |
| 이분 그래프 | $\chi(G) \leq 2$ | 정의에 의해 |
| 피터슨 그래프 | $\chi = 3$ | 유명한 3-정규 그래프 |
색수의 상한
- 탐욕 상한: $\chi(G) \leq \Delta(G) + 1$ (모든 그래프)
- 브룩스 정리(Brooks' Theorem): 완전 그래프와 홀수 순환을 제외하면 $\chi(G) \leq \Delta(G)$
색다항식 (Chromatic Polynomial)
$P(G, k)$는 그래프 $G$를 $k$가지 색으로 적절히 색칠하는 방법의 수를 나타내는 다항식입니다.
- $P(K_n, k) = k(k-1)(k-2)\cdots(k-n+1) = k^{\underline{n}}$
- $P(T_n, k) = k(k-1)^{n-1}$ (트리)
- $P(C_n, k) = (k-1)^n + (-1)^n(k-1)$ (순환 그래프)
4색 정리 (Four Color Theorem)
이 정리는 1976년 아펠(Appel)과 하켄(Haken)에 의해 컴퓨터 보조 증명으로 처음 증명되었습니다. 1,936가지의 불가피한 구성(unavoidable configuration)을 컴퓨터로 확인하였습니다.
5색 정리는 비교적 간단히 증명됩니다: 오일러 공식에 의해 평면 그래프는 차수가 5 이하인 꼭짓점을 반드시 포함하며, 귀납법으로 5색 색칠이 가능함을 보입니다.
평면 그래프
정의
평면 그래프(Planar Graph)는 변이 교차하지 않도록 평면에 그릴 수 있는 그래프입니다.
오일러 공식 (Euler's Formula)
증명 스케치: $E = 0$이면 $V = 1$, $F = 1$이므로 성립. 신장 트리에서 시작하여 변을 하나씩 추가할 때마다 면이 하나씩 늘어나므로 $V - E + F$는 항상 2를 유지합니다.
오일러 공식의 따름정리
단순 연결 평면 그래프 ($V \geq 3$)에서:
- $E \leq 3V - 6$
- 삼각형이 없으면: $E \leq 2V - 4$
- 차수가 5 이하인 꼭짓점이 반드시 존재합니다.
비평면 그래프 판별 예시:
| 그래프 | $V$ | $E$ | $3V - 6$ | $E \leq 3V-6$? | 결론 |
|---|---|---|---|---|---|
| $K_5$ | 5 | 10 | 9 | $10 > 9$ | 비평면 |
| $K_{3,3}$ | 6 | 9 | 12 | $9 \leq 12$ (삼각형 없음: $2V-4=8$, $9>8$) | 비평면 |
| $K_4$ | 4 | 6 | 6 | $6 \leq 6$ | 평면 |
쿠라토프스키 정리 (Kuratowski's Theorem, 1930)
바그너 정리(Wagner's Theorem): 동치 조건으로 "$G$에 $K_5$ 또는 $K_{3,3}$을 축소(minor)로 포함하지 않음"도 있습니다.
이분 매칭
매칭의 정의
그래프 $G$에서 매칭(Matching) $M \subseteq E$은 서로 꼭짓점을 공유하지 않는 변들의 집합입니다.
- 최대 매칭(Maximum Matching): $|M|$이 최대인 매칭
- 완전 매칭(Perfect Matching): 모든 꼭짓점이 매칭된 변에 포함되는 매칭 ($|M| = |V|/2$)
홀 결혼 정리 (Hall's Marriage Theorem)
직관: $X$의 어떤 부분집합을 택해도, 그 부분집합의 이웃이 충분히 많아야 모두 매칭할 수 있습니다. 이 조건을 홀 조건(Hall's condition)이라 합니다.
예시: 3명의 학생 $\{s_1, s_2, s_3\}$이 각각 지원 가능한 과목이 있을 때:
| 학생 | 지원 가능 과목 |
|---|---|
| $s_1$ | 수학, 물리 |
| $s_2$ | 수학, 화학 |
| $s_3$ | 물리, 화학 |
홀 조건 확인: $|N(\{s_1\})| = 2 \geq 1$, $|N(\{s_1, s_2\})| = 3 \geq 2$, $|N(\{s_1, s_2, s_3\})| = 3 \geq 3$ 등 모든 부분집합에 대해 성립하므로 완전 매칭이 존재합니다.
쾨니히 정리 (Konig's Theorem)
여기서:
- $\nu(G)$: 최대 매칭의 크기 (매칭 수, matching number)
- $\tau(G)$: 최소 꼭짓점 덮개의 크기 (모든 변의 적어도 한 끝점을 포함하는 최소 꼭짓점 집합)
이분 매칭 알고리즘
| 알고리즘 | 시간 복잡도 | 방법 |
|---|---|---|
| 헝가리안 알고리즘 | $O(V^3)$ | 가중 이분 매칭 (최소 비용) |
| 호프크로프트-카프 | $O(E\sqrt{V})$ | 비가중 최대 이분 매칭 |
| 네트워크 흐름 | $O(VE)$ | 흐름 문제로 변환 |
그래프 동형 판정
두 그래프 $G_1 = (V_1, E_1)$과 $G_2 = (V_2, E_2)$가 동형(Isomorphic)이라 함은, 전단사 함수 $\phi: V_1 \to V_2$가 존재하여 $\{u,v\} \in E_1 \iff \{\phi(u), \phi(v)\} \in E_2$를 만족하는 것입니다. 동형 판정은 일반적으로 어려운 문제이며, 다양한 접근법이 있습니다.
풀이 1: 그래프 불변량 활용
동형인 두 그래프는 반드시 다음 불변량(Invariant)이 같아야 합니다. 불변량이 다르면 동형이 아님을 즉시 판정할 수 있습니다.
| 불변량 | 설명 | 확인 복잡도 |
|---|---|---|
| 꼭짓점 수 $|V|$ | 같아야 합니다 | $O(1)$ |
| 변 수 $|E|$ | 같아야 합니다 | $O(1)$ |
| 차수열 (Degree Sequence) | 차수를 정렬한 수열이 같아야 합니다 | $O(V \log V)$ |
| 연결 성분 수 | 같아야 합니다 | $O(V + E)$ |
| 순환 길이 분포 | 길이별 순환 수가 같아야 합니다 | 높음 |
| 색수 $\chi(G)$ | 같아야 합니다 | NP-hard |
| 스펙트럼 (고유값) | 인접 행렬의 고유값이 같아야 합니다 | $O(V^3)$ |
예시: 다음 두 그래프가 동형인지 판별하십시오.
- $G_1$: $V_1 = \{a,b,c,d,e\}$, 차수열 $= (2,2,2,3,3)$
- $G_2$: $V_2 = \{1,2,3,4,5\}$, 차수열 $= (2,2,2,3,3)$
차수열이 같으므로 불변량만으로는 판별할 수 없습니다. 다음 방법을 시도해야 합니다.
풀이 2: 인접 행렬을 이용한 판정
두 그래프 $G_1$, $G_2$의 인접 행렬을 $A_1$, $A_2$라 하면, $G_1 \cong G_2 \iff$ 치환 행렬(permutation matrix) $P$가 존재하여 다음이 성립합니다:
$$A_2 = P A_1 P^T$$꼭짓점의 순서를 바꾸는 모든 치환을 시도하면 $n!$가지를 확인해야 하므로, 꼭짓점 수가 적은 경우에만 실용적입니다.
풀이 3: 정점 정제 (Vertex Refinement)
색 정제(Color Refinement) 알고리즘은 반복적으로 꼭짓점을 분류하여 동형 가능성을 판단합니다.
- 초기화: 모든 꼭짓점에 차수를 색(label)으로 부여합니다.
- 정제: 각 꼭짓점의 색을 (현재 색, 이웃들의 색 다중집합)으로 갱신합니다.
- 반복: 색 분포가 더 이상 변하지 않을 때까지 반복합니다.
- 비교: 최종 색 분포가 두 그래프에서 다르면 동형이 아닙니다.
최단 경로 알고리즘 비교 심화
세 가지 주요 최단 경로 알고리즘의 핵심 원리와 적용 상황을 비교합니다.
다익스트라 알고리즘의 정당성 증명
다익스트라 알고리즘이 올바른 최단 거리를 구하는 이유를 귀납법으로 증명합니다.
증명 (귀류법): 알고리즘이 처음으로 잘못된 거리를 확정하는 꼭짓점 $v$가 존재한다고 가정합니다. 이때 $\text{dist}[v] > \delta(s, v)$입니다. 실제 최단 경로 $s \to \cdots \to u \to y \to \cdots \to v$에서, $u$는 이미 확정되었고 $y$는 아직 미확정인 첫 번째 꼭짓점이라 하면:
- $\text{dist}[u] = \delta(s, u)$ (가정에 의해 $u$는 올바르게 확정됨)
- $\text{dist}[y] \leq \text{dist}[u] + w(u,y) = \delta(s, y) \leq \delta(s, v) < \text{dist}[v]$
그러면 $\text{dist}[y] < \text{dist}[v]$이므로 알고리즘은 $v$보다 $y$를 먼저 선택해야 합니다. 이는 $v$가 선택되었다는 가정에 모순입니다. $\blacksquare$
벨만-포드: 음의 가중치 처리
벨만-포드 알고리즘은 음의 가중치를 허용하며, 음의 순환(Negative Cycle)까지 감지할 수 있습니다.
핵심 원리: $k$번째 반복 후, 최대 $k$개의 변을 사용하는 최단 경로가 올바르게 계산됩니다. 최단 경로는 최대 $|V|-1$개의 변을 가지므로 $|V|-1$번 반복이면 충분합니다.
음의 순환 감지:
$$\text{if } \exists (u,v) \in E: \text{dist}[u] + w(u,v) < \text{dist}[v] \text{ after } |V|-1 \text{ rounds} \Rightarrow \text{음의 순환 존재}$$단계별 예시: 음의 가중치가 포함된 그래프에서 벨만-포드 실행:
변 목록: $(A,B,4)$, $(A,C,2)$, $(B,D,3)$, $(C,B,-1)$, $(D,E,2)$, $(C,E,7)$
| 반복 | $d(A)$ | $d(B)$ | $d(C)$ | $d(D)$ | $d(E)$ |
|---|---|---|---|---|---|
| 초기 | $0$ | $\infty$ | $\infty$ | $\infty$ | $\infty$ |
| 1 | $0$ | $4$ | $2$ | $7$ | $9$ |
| 2 | $0$ | $1$ | $2$ | $4$ | $6$ |
| 3 | $0$ | $1$ | $2$ | $4$ | $6$ |
| 4 | $0$ | $1$ | $2$ | $4$ | $6$ |
2번째 반복에서 $C \to B$의 음의 가중치 $-1$을 거쳐 $d(B) = 2 + (-1) = 1$로 갱신된 것을 확인할 수 있습니다. 다익스트라에서는 이런 갱신이 불가능합니다.
플로이드-워셜: 모든 쌍 최단 경로
동적 프로그래밍의 전형적 응용으로, 중간 꼭짓점을 하나씩 추가하며 최단 거리를 갱신합니다.
상태 전이:
$$d_{ij}^{(k)} = \min\left(d_{ij}^{(k-1)},\; d_{ik}^{(k-1)} + d_{kj}^{(k-1)}\right)$$여기서 $d_{ij}^{(k)}$는 꼭짓점 $\{1, \ldots, k\}$만 중간 경유지로 사용할 때 $i \to j$의 최단 거리입니다.
완전한 예시: 4개 꼭짓점 그래프:
$$D^{(0)} = \begin{pmatrix} 0 & 3 & \infty & 7 \\ 8 & 0 & 2 & \infty \\ 5 & \infty & 0 & 1 \\ 2 & \infty & \infty & 0 \end{pmatrix} \quad \Rightarrow \quad D^{(4)} = \begin{pmatrix} 0 & 3 & 5 & 6 \\ 5 & 0 & 2 & 3 \\ 3 & 6 & 0 & 1 \\ 2 & 5 & 7 & 0 \end{pmatrix}$$세 알고리즘의 종합 비교
| 기준 | 다익스트라 | 벨만-포드 | 플로이드-워셜 |
|---|---|---|---|
| 유형 | 단일 출발점 | 단일 출발점 | 모든 쌍 |
| 음의 가중치 | 불가 | 가능 | 가능 |
| 음의 순환 감지 | 불가 | 가능 | 대각선 음수로 감지 |
| 시간 복잡도 | $O((V+E)\log V)$ | $O(VE)$ | $O(V^3)$ |
| 공간 복잡도 | $O(V)$ | $O(V)$ | $O(V^2)$ |
| 핵심 기법 | 탐욕법 + 우선순위 큐 | 완화 반복 | 동적 프로그래밍 |
| 최적 사용 상황 | 도로 네트워크 | 환율/비용 그래프 | 작은 밀집 그래프 |
최소 신장 트리 알고리즘 비교 심화
크루스칼, 프림, 보루브카 세 알고리즘의 핵심 전략을 비교합니다. 세 알고리즘 모두 탐욕(Greedy) 전략에 기반하며, 절단 성질과 순환 성질이 정당성을 보장합니다.
순환 성질 (Cycle Property)
증명: MST $T$가 $e$를 포함한다고 가정합니다. $T$에서 $e$를 제거하면 두 성분으로 분리됩니다. 같은 순환에 속하는 다른 변 $e'$ (가중치가 $e$보다 작음)이 이 두 성분을 연결하므로, $e$ 대신 $e'$을 사용하면 더 작은 가중치의 신장 트리가 됩니다. 이는 $T$가 MST라는 가정에 모순입니다. $\blacksquare$
보루브카 알고리즘 (Borůvka's Algorithm, 1926)
MST를 구하는 가장 오래된 알고리즘으로, 병렬화에 유리합니다.
- 각 꼭짓점을 별도의 성분(component)으로 시작합니다.
- 각 성분에서 다른 성분으로 연결되는 변 중 가중치가 최소인 변을 선택합니다.
- 선택된 변들을 모두 추가하여 성분들을 합칩니다.
- 하나의 성분이 될 때까지 반복합니다.
시간 복잡도: $O(E \log V)$. 각 단계에서 성분 수가 절반 이하로 줄어들므로 최대 $O(\log V)$번 반복합니다.
세 MST 알고리즘 종합 비교
| 기준 | 크루스칼 | 프림 | 보루브카 |
|---|---|---|---|
| 핵심 전략 | 전역 최소 변 선택 | 지역 성장 (절단) | 병렬 성분 병합 |
| 자료구조 | Union-Find | 우선순위 큐 | 성분별 최소 변 배열 |
| 시간 복잡도 | $O(E \log E)$ | $O((V+E)\log V)$ | $O(E \log V)$ |
| 희소 그래프 | 우수 | 보통 | 우수 |
| 밀집 그래프 | 보통 | 우수 ($O(V^2)$) | 보통 |
| 병렬화 | 어려움 | 어려움 | 매우 적합 |
| 역사 | 1956년 | 1957년 | 1926년 (최초) |
프림 단계별 예시: 크루스칼 예시와 같은 그래프에서 꼭짓점 $A$부터 시작:
| 단계 | 선택된 집합 | 절단 변 중 최소 | 선택 | MST 변 |
|---|---|---|---|---|
| 1 | $\{A\}$ | $A{-}B(1)$, $A{-}C(3)$ | $A{-}B(1)$ | $\{A{-}B\}$ |
| 2 | $\{A,B\}$ | $A{-}C(3)$, $B{-}C(4)$, $B{-}D(5)$ | $A{-}C(3)$ | $\{A{-}B, A{-}C\}$ |
| 3 | $\{A,B,C\}$ | $C{-}D(2)$, $B{-}D(5)$ | $C{-}D(2)$ | $\{A{-}B, A{-}C, C{-}D\}$ |
MST 가중치 합: $1 + 3 + 2 = 6$ (크루스칼과 동일한 결과)
네트워크 흐름 알고리즘 비교
포드-풀커슨 방법과 에드몬드-카프 알고리즘의 차이점을 상세히 비교합니다.
포드-풀커슨 방법 상세
포드-풀커슨은 "방법(method)"이지 특정 "알고리즘"이 아닙니다. 증가 경로를 찾는 전략을 지정하지 않으므로, 경로 선택에 따라 성능이 크게 달라집니다.
잔여 그래프(Residual Graph) $G_f$:
- 순방향 변: $c_f(u,v) = c(u,v) - f(u,v) > 0$인 변 (아직 용량 여유 있음)
- 역방향 변: $c_f(v,u) = f(u,v) > 0$인 변 (이미 보낸 흐름을 취소 가능)
단계별 예시:
$s \to a$ (용량 10), $s \to b$ (용량 10), $a \to b$ (용량 2), $a \to t$ (용량 8), $b \to t$ (용량 9)인 네트워크에서:
| 반복 | 증가 경로 | 병목 용량 | 누적 흐름 |
|---|---|---|---|
| 1 | $s \to a \to t$ | $\min(10, 8) = 8$ | $8$ |
| 2 | $s \to b \to t$ | $\min(10, 9) = 9$ | $17$ |
| 3 | $s \to a \to b \to t$ (잔여) | $\min(2, 2, 0) = 0$ (경로 없음) | $17$ |
최대 흐름: $17$
에드몬드-카프 알고리즘: BFS 기반 개선
에드몬드-카프는 포드-풀커슨에서 증가 경로를 BFS(너비 우선 탐색)으로 찾아 최단 증가 경로를 선택합니다.
- BFS로 찾은 증가 경로는 변 수가 최소입니다.
- 증가 경로의 길이는 단조 증가합니다.
- 총 증가 횟수: $O(VE)$, 각 BFS: $O(E)$이므로 전체 $O(VE^2)$
포드-풀커슨 vs 에드몬드-카프
| 기준 | 포드-풀커슨 | 에드몬드-카프 |
|---|---|---|
| 경로 탐색 | 임의 (DFS 등) | BFS (최단 경로) |
| 시간 복잡도 | $O(E \cdot |f^*|)$ | $O(VE^2)$ |
| 종료 보장 | 무리수 용량일 때 미보장 | 항상 보장 |
| 실용성 | 정수 용량에서 사용 | 일반적으로 권장 |
매칭 이론 심화
홀 정리의 증명
$|X| = n$에 대한 강한 귀납법을 사용합니다.
기저: $n = 1$이면 $|N(\{x\})| \geq 1$이므로 매칭할 이웃이 존재합니다.
경우 1: 모든 진부분집합 $S \subsetneq X$에 대해 $|N(S)| \geq |S| + 1$ (여유가 있는 경우). 임의의 $x \in X$를 하나의 이웃 $y \in N(\{x\})$에 매칭합니다. $G - \{x, y\}$에서 임의의 $S \subseteq X \setminus \{x\}$에 대해 $|N_{G-y}(S)| \geq |N_G(S)| - 1 \geq |S|$이므로 홀 조건이 유지되며, 귀납 가설에 의해 나머지도 매칭 가능합니다.
경우 2: 어떤 진부분집합 $S_0 \subsetneq X$에 대해 $|N(S_0)| = |S_0|$ (빠듯한 경우). $S_0$과 $N(S_0)$를 귀납 가설로 매칭합니다. $X \setminus S_0$에 대해서도 홀 조건이 성립함을 보이면 (원래의 홀 조건으로부터 유도), 귀납 가설로 나머지도 매칭할 수 있습니다.
쾨니히 정리의 응용
쾨니히 정리 $\nu(G) = \tau(G)$는 이분 그래프에서만 성립합니다. 일반 그래프에서는 $\nu(G) \leq \tau(G) \leq 2\nu(G)$입니다.
예시: $K_{3,3}$에서:
- 최대 매칭: $\nu = 3$ (완전 매칭 가능)
- 최소 꼭짓점 덮개: $\tau = 3$ (한쪽 전체를 선택)
- 쾨니히 정리에 의해 $\nu = \tau = 3$
헝가리안 알고리즘 (Hungarian Algorithm)
가중 이분 매칭에서 최소(또는 최대) 비용 완전 매칭을 구하는 $O(V^3)$ 알고리즘입니다.
알고리즘 개요:
- 초기 레이블링: 각 행에서 최솟값을 빼고, 각 열에서도 최솟값을 뺍니다 (축약).
- 0-변 매칭: 비용이 0인 변들로 최대 매칭을 시도합니다.
- 라벨 조정: 매칭이 완전하지 않으면, 쾨니히 정리를 이용하여 최소 꼭짓점 덮개를 구하고 라벨을 조정합니다.
- 반복: 완전 매칭이 될 때까지 2-3을 반복합니다.
비용 행렬 예시:
$$C = \begin{pmatrix} 7 & 2 & 5 \\ 3 & 6 & 1 \\ 4 & 8 & 3 \end{pmatrix} \xrightarrow{\text{행 축약}} \begin{pmatrix} 5 & 0 & 3 \\ 2 & 5 & 0 \\ 1 & 5 & 0 \end{pmatrix} \xrightarrow{\text{열 축약}} \begin{pmatrix} 4 & 0 & 3 \\ 1 & 5 & 0 \\ 0 & 5 & 0 \end{pmatrix}$$0-변으로 완전 매칭: 행1→열2, 행2→열3, 행3→열1. 원래 비용: $2 + 1 + 4 = 7$ (최소 비용)
그래프 색칠 알고리즘 비교
탐욕 색칠 (Greedy Coloring)
꼭짓점을 순서대로 방문하며, 이웃에 사용되지 않은 가장 작은 번호의 색을 칠합니다.
- 항상 $\chi(G) \leq \Delta(G) + 1$을 보장합니다.
- 꼭짓점 순서에 따라 결과가 달라지며, 최악의 경우 최적과 크게 차이날 수 있습니다.
예시: 순환 $C_5 = (v_1, v_2, v_3, v_4, v_5)$에 탐욕 색칠:
| 꼭짓점 | 이웃의 색 | 배정 색 |
|---|---|---|
| $v_1$ | 없음 | 1 |
| $v_2$ | $\{1\}$ | 2 |
| $v_3$ | $\{2\}$ | 1 |
| $v_4$ | $\{1\}$ | 2 |
| $v_5$ | $\{1, 2\}$ | 3 |
3색 사용: 이 경우 $\chi(C_5) = 3$이므로 최적입니다.
웰시-파웰 알고리즘 (Welsh-Powell Algorithm)
탐욕 색칠의 개선 버전으로, 차수가 큰 꼭짓점부터 먼저 색칠합니다.
- 모든 꼭짓점을 차수 내림차순으로 정렬합니다.
- 정렬된 순서로 탐욕 색칠을 수행합니다.
브룩스 정리 증명 스케치
증명 스케치 ($G$가 3-연결이 아닌 경우):
$G$에 절단점(cut vertex) $v$가 있으면, $v$를 제거한 각 성분에 $v$를 붙인 부분그래프에 대해 귀납적으로 $\Delta(G)$-색칠이 가능합니다. $v$에서 각 성분의 색칠을 조화시키면 됩니다.
$G$가 3-연결인 경우: $G \neq K_{\Delta+1}$이므로, 인접하지 않은 차수 $\Delta$인 두 꼭짓점 $u, w$가 존재합니다. BFS 트리의 역순으로 탐욕 색칠하되, $u, w$를 같은 색으로 시작하면 $\Delta$색으로 충분합니다.
색칠 알고리즘 비교
| 알고리즘 | 보장 색수 | 시간 복잡도 | 최적성 |
|---|---|---|---|
| 탐욕 (임의 순서) | $\leq \Delta + 1$ | $O(V + E)$ | 비최적 가능 |
| 웰시-파웰 | $\leq \Delta + 1$ | $O(V \log V + E)$ | 탐욕보다 나음 |
| DSATUR | $\leq \Delta + 1$ | $O(V^2)$ | 실용적으로 우수 |
| 정확 해법 (백트래킹) | $= \chi(G)$ | 지수 시간 | 최적 |
평면 그래프 심화
오일러 공식의 다양한 증명
증명 1: 귀납법 (변의 수에 대한 귀납)
$E = 0$이면 연결 그래프는 단일 꼭짓점이므로 $V = 1$, $F = 1$ (외부 면만 존재), $1 - 0 + 1 = 2$. ✓
변 $e$가 순환에 포함된 경우: $e$를 제거하면 면 하나가 사라지고 변 하나가 줄어듭니다. 귀납 가설에 의해 $(V) - (E-1) + (F-1) = 2$이므로 $V - E + F = 2$. ✓
변 $e$가 다리(bridge)인 경우: $e$를 제거하면 성분이 둘로 나뉩니다. 각 성분에 대해 $V_i - E_i + F_i = 2$를 적용하고 합산하면 됩니다.
증명 2: 신장 트리를 이용한 증명
연결 평면 그래프의 신장 트리 $T$는 $V$개의 꼭짓점과 $V-1$개의 변을 가집니다. $T$는 면이 1개(외부 면)이므로 $V - (V-1) + 1 = 2$. ✓
$T$에 변을 하나씩 추가합니다. 트리가 아닌 변을 추가할 때마다 정확히 하나의 순환이 생기고, 이 순환이 기존 면을 둘로 나눕니다. 따라서 변 1 추가, 면 1 추가이므로 $V - E + F$는 변함없이 2입니다. ✓
증명 3: 쌍대 그래프를 이용한 논증
평면 그래프 $G$의 쌍대 그래프(Dual Graph) $G^*$는 $G$의 각 면을 꼭짓점으로, 인접한 면을 변으로 연결합니다. $G^*$의 신장 트리와 $G$의 여(complement) 신장 트리의 관계를 이용하면 오일러 공식이 자연스럽게 유도됩니다.
쿠라토프스키 정리 심화
세분(subdivision)이란 변 위에 새 꼭짓점을 삽입하는 연산입니다. 즉, 변 $\{u,v\}$를 제거하고 새 꼭짓점 $w$와 변 $\{u,w\}$, $\{w,v\}$를 추가합니다.
$K_5$가 비평면인 증명:
$K_5$: $V = 5$, $E = 10$. 평면이면 $E \leq 3V - 6 = 9$이어야 하는데, $10 > 9$이므로 비평면입니다.
$K_{3,3}$이 비평면인 증명:
$K_{3,3}$: $V = 6$, $E = 9$. $3V - 6 = 12$이므로 이 부등식만으로는 판별할 수 없습니다. 그러나 $K_{3,3}$은 이분 그래프이므로 삼각형이 없어 모든 면이 길이 4 이상의 경계를 가집니다. 따라서 $2E \geq 4F$, 즉 $F \leq E/2 = 4.5$. 오일러 공식에 의해 $F = 2 - V + E = 2 - 6 + 9 = 5$인데, $5 > 4.5$이므로 모순. 따라서 비평면입니다.
대수적 그래프 이론
대수적 그래프 이론(Algebraic Graph Theory)은 행렬과 선형대수를 이용하여 그래프의 성질을 분석하는 분야입니다.
인접 행렬의 스펙트럼
그래프 $G$의 인접 행렬 $A$의 고유값(eigenvalue) $\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_n$을 $G$의 스펙트럼(spectrum)이라 합니다.
기본 성질:
- $\sum_{i=1}^{n} \lambda_i = \text{tr}(A) = 0$ (대각 성분이 모두 0이므로)
- $\sum_{i=1}^{n} \lambda_i^2 = \text{tr}(A^2) = 2|E|$ (각 변이 두 방향의 길이-2 보행에 기여)
- $\sum_{i=1}^{n} \lambda_i^3 = \text{tr}(A^3) = 6 \times (\text{삼각형의 수})$
- 최대 고유값 $\lambda_1$에 대해: $\frac{2|E|}{|V|} \leq \lambda_1 \leq \Delta(G)$
예시: 순환 그래프 $C_4$의 스펙트럼:
$$A = \begin{pmatrix} 0&1&0&1 \\ 1&0&1&0 \\ 0&1&0&1 \\ 1&0&1&0 \end{pmatrix}, \quad \text{고유값: } 2, 0, 0, -2$$라플라시안 행렬 (Laplacian Matrix)
그래프 $G$의 라플라시안 행렬은 다음과 같이 정의됩니다:
$$L = D - A$$여기서 $D$는 차수 대각 행렬 ($D_{ii} = \deg(v_i)$), $A$는 인접 행렬입니다.
라플라시안의 성질:
- $L$은 양반정치(positive semidefinite)입니다: 모든 고유값 $\mu_i \geq 0$
- 최소 고유값 $\mu_1 = 0$이며, 대응하는 고유벡터는 $\mathbf{1} = (1, 1, \ldots, 1)^T$
- $\mu_2 = 0$인 것의 개수 = 연결 성분의 수
- 두 번째 작은 고유값 $\mu_2$를 대수적 연결도(Algebraic Connectivity) 또는 피들러 값(Fiedler Value)이라 하며, 그래프의 연결 강도를 나타냅니다
키르히호프의 행렬-트리 정리
예시: $K_4$의 라플라시안 고유값은 $0, 4, 4, 4$이므로:
$$t(K_4) = \frac{1}{4} \cdot 4 \cdot 4 \cdot 4 = 16$$검증: 케일리 공식 $4^{4-2} = 16$. ✓
예시: $C_4$의 라플라시안:
$$L = \begin{pmatrix} 2&-1&0&-1 \\ -1&2&-1&0 \\ 0&-1&2&-1 \\ -1&0&-1&2 \end{pmatrix}, \quad \text{고유값: } 0, 2, 2, 4$$ $$t(C_4) = \frac{1}{4} \cdot 2 \cdot 2 \cdot 4 = 4$$램지 이론
램지 이론(Ramsey Theory)은 "충분히 큰 구조에서는 반드시 특정 패턴이 나타난다"는 원리를 다룹니다.
램지 수의 정의
램지 수 $R(s, t)$는 다음을 만족하는 최소 자연수 $n$입니다:
$R(3,3) = 6$ 증명
이것은 "파티 문제"라고도 합니다: 6명이 모이면, 서로 모두 아는 3명 또는 서로 모두 모르는 3명이 반드시 존재합니다.
$K_6$의 변을 빨강/파랑으로 2-색칠합니다. 임의의 꼭짓점 $v$를 고정하면 $v$에서 5개의 변이 나갑니다. 비둘기집 원리에 의해 같은 색의 변이 적어도 $\lceil 5/2 \rceil = 3$개 있습니다. 빨간 변이 3개 이상이라 가정합시다 (파란 경우도 대칭적).
$v$에서 빨간 변으로 연결된 세 꼭짓점을 $a, b, c$라 하면:
- $a, b, c$ 사이의 변 $\{a,b\}$, $\{b,c\}$, $\{a,c\}$ 중 하나라도 빨간색이면, 그 변의 양 끝점과 $v$가 빨간 삼각형을 이룹니다.
- 셋 모두 파란색이면, $a, b, c$가 파란 삼각형을 이룹니다.
어느 경우든 단색 삼각형이 존재합니다.
$K_5$의 변을 단색 삼각형 없이 2-색칠할 수 있음을 보이면 됩니다. $C_5$(순환)의 변을 빨강, 나머지를 파랑으로 칠하면:
- 빨간 그래프: $C_5$ (삼각형 없음)
- 파란 그래프: $C_5$의 보그래프 = $C_5$ (삼각형 없음)
따라서 $R(3,3) > 5$이고, 위의 결과와 합치면 $R(3,3) = 6$입니다. $\blacksquare$
알려진 램지 수
| $R(s,t)$ | $t=3$ | $t=4$ | $t=5$ | $t=6$ |
|---|---|---|---|---|
| $s=3$ | $6$ | $9$ | $14$ | $18$ |
| $s=4$ | $9$ | $18$ | $25$ | $36 \sim 41$ |
| $s=5$ | $14$ | $25$ | $43 \sim 48$ | ? |
램지 수의 상한과 하한
상한 (에르되시-세케레시, 1935):
$$R(s, t) \leq \binom{s+t-2}{s-1}$$특히 $R(s, s) \leq \binom{2s-2}{s-1} \leq 4^{s-1}$입니다.
하한 (에르되시, 1947, 확률적 방법):
$$R(s, s) \geq \frac{s}{e\sqrt{2}} \cdot 2^{s/2}$$이것은 확률적 방법(probabilistic method)의 초기 응용으로, 실제로 반례를 구성하지 않고 "존재성"만 증명합니다.
확률적 그래프
확률적 그래프(Random Graph)는 확률 모형에 따라 생성되는 그래프로, 그래프의 "전형적인" 성질을 연구하는 데 사용됩니다.
에르되시-레니 모형 (Erdős-Rényi Model)
두 가지 모형이 있습니다:
| 모형 | 정의 | 매개변수 |
|---|---|---|
| $G(n, M)$ | $n$개 꼭짓점에서 $M$개의 변을 균일 무작위로 선택 | $n$, $M$ |
| $G(n, p)$ | $n$개 꼭짓점의 각 쌍이 독립적으로 확률 $p$로 연결 | $n$, $p$ |
$G(n, p)$ 모형이 분석에 더 편리하여 널리 사용됩니다.
$G(n, p)$의 기본 성질
- 변의 기대값: $\mathbb{E}[|E|] = \binom{n}{2} p \approx \frac{n^2 p}{2}$
- 차수 분포: 각 꼭짓점의 차수는 $\text{Binomial}(n-1, p)$을 따릅니다. $np$가 상수일 때 포아송 분포로 근사됩니다.
- 삼각형의 기대값: $\mathbb{E}[\text{삼각형 수}] = \binom{n}{3} p^3$
문턱 현상 (Threshold Phenomenon)
확률적 그래프의 가장 놀라운 성질은 문턱 현상입니다. 특정 성질이 $p$가 문턱값 이하일 때 거의 확실히 성립하지 않다가, 문턱값 이상이 되면 거의 확실히 성립합니다.
| 성질 | 문턱값 $p^*$ | 의미 |
|---|---|---|
| 고립 꼭짓점 소멸 | $\frac{\ln n}{n}$ | 모든 꼭짓점이 적어도 하나의 변을 가짐 |
| 연결성 | $\frac{\ln n}{n}$ | 그래프가 연결됨 |
| 거대 성분 출현 | $\frac{1}{n}$ | $O(n)$ 크기의 연결 성분 출현 |
| 해밀턴 순환 | $\frac{\ln n + \ln \ln n}{n}$ | 해밀턴 순환 존재 |
| 삼각형 포함 | $\frac{1}{n}$ | 삼각형이 적어도 하나 존재 |
거대 성분의 상전이 (Phase Transition)
$G(n, p)$에서 $p = c/n$으로 놓으면:
- $c < 1$: 모든 연결 성분의 크기가 $O(\log n)$입니다 (산발적 작은 조각들).
- $c = 1$: 최대 성분의 크기가 $O(n^{2/3})$입니다 (임계점).
- $c > 1$: 크기 $\Theta(n)$인 거대 성분(Giant Component)이 정확히 하나 존재하고, 나머지 성분들은 $O(\log n)$ 크기입니다.
거대 성분의 크기: $c > 1$일 때, 거대 성분에 속하는 꼭짓점의 비율 $\rho$는 다음 방정식의 유일한 양의 해입니다:
$$\rho = 1 - e^{-c\rho}$$확률적 방법과 그래프 이론
에르되시가 개척한 확률적 방법(Probabilistic Method)은 특정 성질을 만족하는 그래프의 존재성을 증명하는 강력한 도구입니다. 핵심 아이디어:
$\Pr[\text{성질 } \mathcal{P}] > 0 \implies \text{성질 } \mathcal{P}\text{를 만족하는 대상이 존재}$
이 방법은 램지 이론의 하한, 그래프 색칠의 존재성 등 다양한 조합론적 문제에서 핵심적으로 사용됩니다.
주요 정리 요약
| 정리 | 내용 (요약) |
|---|---|
| 악수 정리 | $\sum \deg(v) = 2|E|$ |
| 오일러 정리 | 오일러 회로 존재 $\iff$ 모든 차수 짝수 |
| 디랙 정리 | $\delta(G) \geq n/2 \Rightarrow$ 해밀턴 순환 존재 |
| 오레 정리 | 비인접 쌍의 차수합 $\geq n \Rightarrow$ 해밀턴 순환 |
| 케일리 공식 | 레이블된 트리의 수 $= n^{n-2}$ |
| 오일러 공식 | $V - E + F = 2$ (연결 평면 그래프) |
| 쿠라토프스키 정리 | 평면 $\iff$ $K_5, K_{3,3}$ 세분 없음 |
| 4색 정리 | 평면 그래프는 $\chi \leq 4$ |
| 브룩스 정리 | $\chi(G) \leq \Delta(G)$ (완전/홀수순환 제외) |
| 홀 결혼 정리 | $|N(S)| \geq |S|$ $\iff$ 매칭 존재 |
| 쾨니히 정리 | 이분 그래프: 최대 매칭 = 최소 덮개 |
| 최대흐름-최소절단 | $\max |f| = \min$ 절단 용량 |
| 키르히호프 행렬-트리 | $t(G) = \frac{1}{n}\prod \lambda_i$ (라플라시안 고유값) |
| 램지 $R(3,3)=6$ | 6명 중 서로 아는 3명 또는 서로 모르는 3명 존재 |
| 에르되시-레니 상전이 | $p = 1/n$ 근처에서 거대 성분 출현 |
| 바그너 정리 | 평면 $\iff$ $K_5, K_{3,3}$을 축소로 불포함 |