이산수학 9. 그래프
1. 그래프의 개념
- 그래프(graph, \(G=(V, E)\)): 정점의 집합 \(V\)와 변의 집합 \(E\)로 구성된 구조
- 정점 \(v_i\)와 \(v_j\)는 인접(adjacent): \(v_i\)와 \(v_j\)를 연결하는 변이 존재
- 변 \(e_k\)는 정점 \(v_i\)와 \(v_j\)에 근접(incident): \(e_k\)는 \(v_i\)와 \(v_j\)를 연결
- 단순 그래프(simple graph): 임의의 두 정점 사이에 오직 하나의 변이 있는 그래프
- 다중 그래프(multi graph): 임의의 두 정점 사이에 두 개 이상의 변이 있는 그래프
- 방향 그래프(directed graph, \(G = <V, E>\)): 정점 사이에 순서가 존재하여 화살표를 이용해 표현하는 그래프
- 가중치 그래프(weighted graph): 각 변에 가중치가 부여된 그래프
- \(W[v_i, v_j]\): \(v_i\)와 \(v_j\)에 근접하는 변에 부여된 가중치
- 차수(degree, \(d(v)\)): \(v\)에 근접하는 변의 개수
- 외차수(out-degree, \(d_{out}(v)\)): \(v\)를 시작점으로 하는 화살표의 개수
- 내차수(in-degree, \(d_{in}(v)\)): \(v\)를 끝점으로 하는 화살표의 개수
- 모든 정점의 차수의 합은 변의 개수의 2배
- 차수가 홀수인 정점의 개수는 짝수
2. 그래프의 종류
- 부분 그래프(subgraph): \(V^\prime \subseteq V\)이고 \(E^\prime \subseteq E\)인 정점과 변으로 구성된 \(G \neq G^\prime\)인 그래프
- 신장부분 그래프(spanning subgraph): \(V^\prime = V\)이고 \(E^\prime \subseteq E\)인 정점과 변으로 구성된 그래프
- 동형 그래프(isomorphic graph): \(G_1 = (V_1, E_1)\)과 \(G_2 = (V_2, E_2)\)에 대한 함수 \(f: V_1 \rightarrow V_2\)가 \(u, v \in V_1\)에 대하여 \((u, v) \in E_1\)이면 \((f(u), f(v)) \in E_2\)를 만족하는 전단사 함수일 때, 두 그래프 \(G_1\), \(G_2\)
- 연결 그래프(connected graph): 임의의 정점 \(u, v\) 사이에 경로가 있는 그래프(소외된 부분 그래프가 없는 그래프)
- 경로(path): 임의의 정점 \(u, v\) 사이에 가능한 길 중에서 같은 변을 두 번 이상 포함하지 않는 길
- 평면 그래프(planar graph): 연결 그래프를 평면에 그릴 때 어떤 변도 교차하지 않도록 그릴 수 있는 그래프
- 오일러 공식: 평면 그래프에서 정점의 수를 \(v\), 변의 수를 \(e\), 영역의 수를 \(s\)라고 할 때, \(v - e + s = 2\)
- 정규 그래프(regular graph, \(k\)-정규그래프): 모든 정점의 차수가 \(k\)로 같은 그래프
- 완전 그래프(complete graph, \(K_n\)): 모든 정점 사이에 변이 존재하는 그래프
- 완전이분 그래프(complete bipartite graph, \(K_{m, n}\)): 정점 집합 \(V\)에서 \(V = V_1 \cup V_2\)와 \(V_1 \cap V_2 = \varnothing\)을 만족하는 \(V_1\)과 \(V_2\)에 대해, 모든 변이 \(V_1\)의 한 정점에서 \(V_2\)의 한 정점으로 연결되는 그래프
- 이분 그래프(bipartite graph): 정점 집합 \(V\)에서 \(V = V_1 \cup V_2\)와 \(V_1 \cap V_2 = \varnothing\)을 만족하는 \(V_1\)과 \(V_2\)에 대해, 어떤 변이 \(V_1\)의 한 정점에서 \(V_2\)의 한 정점으로 연결되는 그래프
3. 그래프의 표현
인접 행렬(adjacency matrix, \(A_G\))
\[a_{ij} = \begin{cases} \text{해당 정점에 근접하는 변의 수}&,(v_i, v_j)\in E\\ 0&, (v_i, v_j) \notin E\\ \end{cases}\]인접 리스트(adjacency list): 각 정점에 인접하는 정점들을 연결리스트로 표현한 것
4. 오일러와 해밀턴
- 순환(cycle): 연결 그래프에서 시작하는 정점과 끝나는 정점이 같은 경로
- 길이(length): 경로를 구성하는 변의 수
- 오일러 경로(Eulerian path): 임의의 정점에서 시작하여 모든 변을 한 번씩만 지나는 경로
- 오일러 순환(Eulerian cycle): 오일러 경로이면서 순환하는 경로
- 오일러 그래프(Eulerian graph): 오일러 순환을 가지는 그래프
- 정점 중 차수가 홀수인 정점의 수가 0 또는 2개인 그래프
- 해밀턴 경로(Hamiltonian path): 모든 정점을 한 번씩만 지나는 경로
- 해밀턴 순환(Hamiltonian cycle): 해밀턴 경로이면서 순환하는 경로
- 해밀턴 그래프(Hamiltonian graph): 해밀턴 순환을 가지는 그래프
This post is licensed under CC BY 4.0 by the author.