Linearism › 이산수학 › DM.11

11강. 그래프

이산수학 · 4부. 정수와 그래프

심화 · 약 15분 · 연습문제 6

요약

그래프의 정의, 차수와 악수 정리, 경로와 연결성, 오일러 회로, 이분 그래프, 인접행렬과 경로의 수, 평면 그래프

점과 그 점들을 잇는 선으로 이루어진 그림을 그래프라 합니다. 지하철 노선도, 친구 관계, 웹 페이지의 링크, 분자 구조가 모두 그래프입니다. 이 강에서는 그래프의 기본 용어와 정리(악수 정리, 오일러 회로, 이분 그래프)를 다루고, 인접행렬로 그래프를 행렬 계산으로 바꾸는 방법을 봅니다.

그래프는 “무엇과 무엇이 이어져 있는가”를 나타내는 구조입니다. 도로망, 친구 관계, 웹 페이지의 링크, 회로, 이 사이트의 개념 그래프가 모두 그래프입니다. 5강의 관계를 그림으로 그린 것이라 볼 수도 있습니다.

11.1 정의

정의 11.1 (그래프). 그래프 G=(V,E)G = (V, E)는 꼭짓점의 집합 VV와 변의 집합 EE로 이루어지고, 각 변은 두 꼭짓점을 잇습니다. 이 강에서는 따로 말하지 않으면 단순 그래프(방향이 없고, 자기 자신으로 가는 변과 겹친 변이 없는 그래프)를 다룹니다.

변 {u,v}\{u, v\}가 있으면 uu와 vv는 인접(adjacent)합니다.

정의 11.2 (차수). 꼭짓점 vv에 붙은 변의 수를 vv의 차수(degree) deg⁡v\deg v라 합니다.

정의 11.3 (특별한 그래프).

  • 완전그래프 KnK_n: 꼭짓점 nn개, 모든 두 꼭짓점이 인접. 변은 (n2)\binom{n}{2}개.
  • 순환그래프 CnC_n: 꼭짓점이 원을 이루는 nn개의 변.
  • 완전이분그래프 Km,nK_{m,n}: mm개와 nn개의 두 무리, 서로 다른 무리끼리만 모두 인접. 변은 mnmn개.

11.2 악수 정리

정리 11.4 (악수 정리). ∑v∈Vdeg⁡v=2∣E∣\displaystyle\sum_{v \in V} \deg v = 2|E|.

증명. 변 하나는 양 끝 꼭짓점의 차수에 1씩, 모두 2를 더합니다. □

따름정리 11.5. 차수가 홀수인 꼭짓점은 짝수 개입니다.

증명. 차수의 합이 짝수이므로, 홀수 차수들의 합도 짝수여야 하고, 그러려면 홀수 차수가 짝수 개여야 합니다. □

예제 11.6. 9명이 각자 정확히 3명과 악수하는 것은 불가능합니다. 차수의 합 9⋅3=279 \cdot 3 = 27이 홀수이기 때문입니다.

11.3 경로와 연결성

정의 11.7. 꼭짓점 v0,v1,…,vkv_0, v_1, \dots, v_k가 차례로 인접할 때 이를 길이 kk인 보행(walk)이라 합니다. 꼭짓점이 겹치지 않으면 경로(path), 처음과 끝이 같고 그 밖에 겹치지 않으면 회로(사이클)입니다.

정의 11.8. 임의의 두 꼭짓점 사이에 경로가 있으면 그래프가 연결되어 있다고 합니다. “경로로 이어짐”은 동치관계이고, 그 동치류를 연결 성분(connected component)이라 합니다.

11.4 오일러 회로

18세기 쾨니히스베르크의 일곱 다리를 한 번씩만 건너 제자리로 돌아올 수 있는지가 그래프 이론의 시작입니다.

정의 11.9. 모든 변을 정확히 한 번씩 지나는 회로를 오일러 회로(Eulerian circuit), 처음과 끝이 달라도 되면 오일러 경로라 합니다.

정리 11.10 (오일러). 연결된 그래프에 오일러 회로가 있을 필요충분조건은 모든 꼭짓점의 차수가 짝수인 것입니다. 오일러 경로(회로가 아닌)가 있을 필요충분조건은 홀수 차수 꼭짓점이 정확히 2개인 것입니다.

증명 (필요). 회로가 꼭짓점을 지날 때마다 들어오는 변 하나와 나가는 변 하나를 쓰므로 차수는 짝수입니다. (충분) 짝수 차수에서 시작해 쓰지 않은 변을 따라가면 출발점에서만 막히므로 회로가 생기고, 빠진 변이 있으면 그 회로 위의 꼭짓점에서 다시 회로를 만들어 끼워 넣습니다. □

쾨니히스베르크의 그래프는 꼭짓점 4개의 차수가 5,3,3,35, 3, 3, 3으로 모두 홀수이므로 오일러 경로조차 없습니다.

한편 모든 꼭짓점(vertex)을 한 번씩 지나는 해밀턴 회로는 비슷해 보이지만 이렇게 간단한 판정법이 알려져 있지 않고, 계산이 매우 어려운 문제로 여겨집니다.

11.5 이분 그래프

정의 11.11. 꼭짓점을 두 무리로 나눠, 모든 변이 서로 다른 무리를 잇게 할 수 있으면 이분 그래프(bipartite graph)입니다.

정리 11.12. 그래프가 이분 그래프일 필요충분조건은 길이가 홀수인 회로가 없는 것입니다.

증명 (필요). 회로를 따라가면 무리가 번갈아 바뀌므로, 제자리로 돌아오려면 짝수 번 움직여야 합니다. □

CnC_n은 nn이 짝수일 때만 이분 그래프이고, K3K_3은 이분 그래프가 아닙니다.

11.6 인접행렬과 경로의 수

정의 11.13. 꼭짓점이 v1,…,vnv_1, \dots, v_n인 그래프의 인접행렬(adjacency matrix) AA는 viv_i와 vjv_j가 인접하면 Aij=1A_{ij} = 1, 아니면 0인 n×nn \times n 행렬입니다. 방향 없는 그래프에서 AA는 대칭입니다.

정리 11.14. (Ak)ij(A^k)_{ij}는 viv_i에서 vjv_j로 가는 길이 kk인 보행의 수입니다.

증명. 귀납법. k=1k = 1은 정의입니다. (Ak+1)ij=∑l(Ak)ilAlj(A^{k+1})_{ij} = \sum_l (A^k)_{il} A_{lj}는 “vlv_l까지 길이 kk로 가고 마지막에 vl→vjv_l \to v_j”인 보행을 ll마다 센 것입니다. □

예제 11.15. 삼각형 K3K_3의 인접행렬 A=[011101110]A = \begin{bmatrix} 0&1&1\\1&0&1\\1&1&0 \end{bmatrix}에서 A2=[211121112]A^2 = \begin{bmatrix} 2&1&1\\1&2&1\\1&1&2 \end{bmatrix}입니다. 대각성분 2는 “이웃에 갔다 돌아오는” 길이 2인 보행 2개입니다. tr⁡(A3)/6\operatorname{tr}(A^3)/6은 삼각형(길이 3인 회로)의 수로, K3K_3에서는 1입니다.

선형대수 31장에서는 인접행렬과 라플라시안의 고윳값으로 그래프의 연결 구조를 읽습니다.

11.7 평면 그래프

정의 11.16. 변이 서로 교차하지 않게 평면에 그릴 수 있는 그래프를 평면 그래프(planar graph)라 합니다. 그렇게 그렸을 때 평면이 나뉘는 영역을 면이라 합니다(바깥 영역 포함).

정리 11.17 (오일러 공식). 연결된 평면 그래프의 꼭짓점 수 vv, 변 수 ee, 면 수 ff는 v−e+f=2v - e + f = 2를 만족합니다.

증명 개요. 변의 수에 대한 귀납법. 트리(12강)이면 e=v−1e = v - 1, f=1f = 1이므로 성립합니다. 회로가 있으면 회로 위의 변 하나를 지울 때 면이 하나 줄고 변이 하나 주므로 v−e+fv - e + f가 그대로입니다. □

정육면체의 꼭짓점·변·면은 8−12+6=28 - 12 + 6 = 2입니다. 오일러 공식으로 K5K_5와 K3,3K_{3,3}이 평면 그래프가 아님을 보일 수 있습니다.

쓰이는 곳. 그래프 신경망(GNN), 소셜 네트워크 분석, 경로 탐색(지도 앱), 페이지랭크, 회로 설계가 그래프의 언어로 쓰입니다. 인접행렬의 거듭제곱과 고윳값은 선형대수 31장의 스펙트럴 방법으로 이어집니다.

11.8 이 장의 요약

  • 악수 정리 ∑deg⁡v=2∣E∣\sum \deg v = 2|E|, 홀수 차수 꼭짓점은 짝수 개.
  • 오일러 회로 ⟺ 연결 + 모든 차수가 짝수.
  • 이분 ⟺ 홀수 회로가 없음. (Ak)ij(A^k)_{ij} = 길이 kk 보행의 수. v−e+f=2v - e + f = 2.

문제

11.1 [계산] · 확인 문제

변의 수를 씁니다.

그래프 변의 수
K6K_6 [?]
K3,4K_{3,4} [?]
C7C_7 [?]
모든 꼭짓점의 차수가 4인 꼭짓점 10개짜리 그래프 [?]
정답
15
12
7
20
풀이

(62)=15\binom{6}{2} = 15, 3⋅4=123 \cdot 4 = 12, 77, 악수 정리로 10⋅4/2=2010 \cdot 4 / 2 = 20입니다.

11.2 [개념] · 확인 문제

오일러 회로가 있는 그래프를 모두 고릅니다.

  1. K4K_4
  2. K5K_5
  3. C6C_6
  4. K2,4K_{2,4}
정답
2,3,4
풀이

K4K_4는 모든 차수가 3(홀수)이라 없습니다. K5K_5는 차수 4, C6C_6은 차수 2, K2,4K_{2,4}는 차수가 4와 2로 모두 짝수이고 연결되어 있으므로 있습니다.

11.3 [계산] · 확인 문제

4-순환그래프 C4C_4(꼭짓점 v1v2v3v4v_1 v_2 v_3 v_4가 차례로 원을 이룸)에서 v1v_1에서 v1v_1로 가는 길이 4인 보행은 몇 개일까요?

힌트 1

인접행렬을 네제곱한 행렬의 (1, 1) 성분입니다.

정답
8
풀이

꼭짓점 번호를 0,1,2,30, 1, 2, 3으로 두면 한 걸음은 번호에 +1+1 또는 −1-1을 더하는 것(4로 나눈 나머지)입니다. 4걸음 뒤 제자리이려면 더한 값의 합이 4의 배수여야 합니다. 합이 0인 경우(+1+1 두 번, −1-1 두 번)가 (42)=6\binom{4}{2} = 6가지, 합이 +4+4나 −4-4인 경우가 1가지씩이라 모두 8가지입니다. 인접행렬로 계산한 (A4)11(A^4)_{11}도 8입니다.

11.4 [계산]

연결된 평면 그래프의 꼭짓점이 10개, 변이 15개일 때 면은 몇 개일까요?

정답
7
풀이

v−e+f=2v - e + f = 2에서 f=2−10+15=7f = 2 - 10 + 15 = 7입니다.

11.5 [개념]

꼭짓점 차수가 3,3,2,2,13, 3, 2, 2, 1인 단순 그래프에 대한 설명으로 옳은 것은?

  1. 변이 5개인 그런 그래프가 있습니다.
  2. 차수의 합이 홀수라 그런 그래프는 없습니다.
  3. 변이 6개인 그런 그래프가 있습니다.
  4. 차수 1인 꼭짓점이 있으면 그래프가 연결될 수 없으므로 그런 그래프는 없습니다.
정답
2
풀이

차수의 합은 3+3+2+2+1=113 + 3 + 2 + 2 + 1 = 11로 홀수이므로 악수 정리(합 = 변 수의 2배)에 어긋나 그런 그래프는 없습니다. 1번과 3번은 존재를 말하므로 틀립니다. 4번의 근거는 틀렸습니다. 차수 1인 꼭짓점이 있어도 연결 그래프는 얼마든지 있습니다(예: 경로 그래프의 양 끝).

11.6 [증명]

꼭짓점이 2개 이상인 단순 그래프에는 차수가 같은 두 꼭짓점이 있음을 보입니다.

힌트 1

꼭짓점이 nn개이면 차수는 00부터 n−1n-1까지입니다. 그런데 차수 0과 n−1n-1이 동시에 있을 수 있을까요?

풀이

꼭짓점이 nn개이면 차수는 0,1,…,n−10, 1, \dots, n-1의 nn가지 값 중 하나입니다. 그런데 차수 0인 꼭짓점(아무와도 인접하지 않음)과 차수 n−1n-1인 꼭짓점(모두와 인접함)은 동시에 있을 수 없습니다. 그러므로 실제로 나올 수 있는 값은 n−1n - 1가지이고, nn개의 꼭짓점에 비둘기집 원리(8강)를 쓰면 차수가 같은 두 꼭짓점이 있습니다.