8.1.1 그래프의 기본 개념
• 그래프(graph): 연결되어 있는 객체간의 관계를 표현하는 자료구조
• 그래프의 예: 전기회로, 프로젝트관리, 지도에서 도시들의 연결
• 그래프: 아주 일반적인 자료구조
• (예) 트리도 그래프의 일종으로 볼수 있다.
• 그래프 이론(graph theory): 그래프를 문제해결의 도구로
이용하는 연구분야
8.1.1 그래프의 기본 개념 (1)
• 1736년에 오일러에 의하 여 창안
• 오일러 문제: 모든 다리를 한번만 건너서 처음 출발 했던 장소로 돌아오는 문 제
• 문제의 핵심만을 표현
• 위치: 정점(node)
• 다리: 간선(edge)
• 오일러 경로: 정점에 연결
된 간선의 개수가 짝수이
면 존재
8.1.1 그래프의 기본 개념 (2)
• 그래프는 G(V, E)로 표시된다.
• V는 정점(vertices)들의 집합
• E는 간선(edge)들의 집합
• 정점과 간선은 모두 관련되는 데이터를 가질수 있다.
8.2: 그래프의 예
1
2 3
4
1
2 3
4 5 6
1 2 3
(a) G1 (b) G2 (c) G3
V(G1)={1, 2, 3, 4} E(G1)={(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3.,4)}
V(G2)={1, 2, 3, 4, 5, 6} E(G2)={(1, 2), (1, 3), (2, 4), (2, 5), (3, 6)}
V(G3)={1, 2, 3, 4} E(G3)={<1, 2>, <2, 3>, <3, 2>, <2, 4>}
4
8.1.2 그래프 관련 용어 (1)
• 완전 그래프(complete graph)
• 최대 수의 간선을 가진 그래프
• 정점이 n개일 때, 간선의 수는
• 무방향 그래프일 때 n(n-1)/2,
• 방향 그래프일 때 n(n-1)
• 다중 그래프(mutigraph)
• 두 정점사이 2개 이상의 간선이 존재하는 그래프
• 원칙적으로 그래프는 중복간선을 허용하지 않음
• 서브 그래프(subgraph)
• V(G’)⊆V(G)이고, E(G’)⊆E(G)인 그래프 G’를 그래프 G의 서브 그래프 또는 부분 그래프라 한다.
8.1.2 그래프 관련 용어 (2)
• 인접 (adjacent)과 부속 (incident):
무방향 그래프의 한 간선 (v
j, v
k)에 대해
• vj와 vk는 서로 인접한다.
• 간선 (vj, vk)는 정점 vj와 vk에 부속한다.
• 예1) 그래프 G1
• 정점 1, 3 : 정점 0에 인접.
• 간선 (0, 1), (1, 2), (1, 3) : 정점 1에 부속.
• 예2) 그래프 G2
• 정점 1 : 정점 2로 인접(adjacent to 2)
• 정점 2 : 정점 1로부터 인접(adjacent to 1)
• 아크 <0, 1>, <1, 2>, <1, 0> : 정점 1에 부속.
0 1
3 2
G1
0 1 2
G2
8.1.2 그래프 관련 용어 (3)
• 경로(path)와 사이클(cycle)
• 경로: 정점 vj 로부터 vi 까지의 경로(path)
• 경로의 길이(path length): 경로를 구성하는 간선의 수
• 단순 경로(simple path): 모두 상이한 간선들로 구 성된 경로
• 사이클(cycle): 첫 번째 정점과 마지막 정점이 동일 한 단순 경로
• 그래프 G1
• 경로 0,1,3,2 : 길이 3, 단순경로
• 경로 0, 1, 3, 0 : 사이클
• 그래프 G2
• 경로 0,1,2 : 단순 경로
• 경로 0, 1, 0 : 사이클
0 1
3 2
G1
0 1 2
G2
8.1.2 그래프 관련 용어 (4)
• 연결 그래프(connected graph)
서로 다른 모든 정점들 사이에 경로가 있는 무방향 그래프는 연 결 그래프 아니면 단절 그래프(disconnected graph)
• 어느 한 정점에서부터 다른 어떤 정점에로의 경로 존재
• 트리 : 사이클이 없는 연결 그래프 (acyclic connected graph)
• 연결 요소(connected component):
• 최대 연결 부분 그래프(maximal connected subgraph)
• 최대 : 최대의 정점과 최대의 간선
• 예) G : H1, H2 두개의 요소를 가짐
0 1
3 2
G
4
5 6
H
1H
28.1.2 그래프 관련 용어 (5)
• 강력 연결(strongly connected)
• 방향 그래프 G에서 V(G)에 있는 서로 다른 모든 정점의 쌍 u와 v에 대해 u에 서 v까지, 또한 v에서 u까지의 방향 경 로가 존재
• 예 : G4
• 약한 연결(weakly connected)
• 무방향그래프로 생각할때(에지방향을 무시해서) 모든 정점사이에 경로가 존 재
• 예 : G5
• 강력 연결 요소(strongly connected component)
• 강력 연결된 최대 부분 그래프
• 예) H1 , H2 : G2 의 강력연결요소
0
1 4
3 2
0
1 4
3 2
G4 G5
0 1 2
G2
0 1
H1
2
H2 방향그래프에 대해
8.1.2 그래프 관련 용어 (6)
• 차수(degree)
• 무방향 그래프의 차수(degree) : 무방향 그래프에서 그 정점에 부속된 간선의 수
예) G1 의 정점 3의 차수 : 3
정점이 n개인 무방향 그래프의 간선 수 e = ( ∑i=0n-1 degree(i) ) / 2
• 방향 그래프의 차수(degree)
• 진입 차수(indegree) : 방향 그래프에서 정점 v를 머 리로 하는 간선의 수
• 진출 차수(outdegree) : 방향 그래프에서 정점 v를 꼬리로 하는 간선의 수
예) 그래프 G2
정점 0 : 진입 차수 = 진출 차수 = 1 정점 1 : 진입 차수 =1, 진출 차수 = 2
0
1
3
2
G1
0 1 2
G2