그래프 이론은 객체 간의 관계를 모델링하기 위해 사용하는 이론이다.
소셜 네트워크 관계망, 네비게이션 서비스 등등 다양한 분야에서 사용되고 있다고 한다.
먼저 간단한 용어 정리부터.
Vertex : 정점
Edge : 연결선
정점과 연결선을 잇는 형태로 그래프가 만들어진다고 보면 된다.
[다양한 그래프의 종류]
1. 단순 그래프 (Simple Graph)
2. 멀티 그래프 (Multi Graph)
3. 의사 그래프 (Pseudograph)
4. 방향 그래프 (Directed Graph) / 무방향 그래프 (Undirected Graph)
앞서 그래프들의 특징을 정리하면 다음과 같다.
Simple Directed Graph, Directed multigraph 가 생소해보일 수 있는데 영어 뜻을 생각해보면 간단하다.
Simple Directed는 말그대로 심플하게 방향성을 가진 그래프, 출력 방향만 가진 그래프다.
Directed multigraph 는 방향성을 가진 멀티그래프, 입력/출력 방향을 가진 그래프다.
약수정리
정점 v와 연결된 연결선의 개수를 차수(degree)라고 한다. 그리고 deg(v)로 나타낸다.
이때 연결선은 그래프의 차수를 계산할 때 두번 반복해 계산된다. 그러므로
모든 정점들의 차수 합은 연결선 개수의 두 배가 된다.
(좀만 생각해보면 당연한 얘기)
출력차수/입력차수
출력이 '+', 입력이 '-' 다. 부호에 신경쓰도록 하자.
인접목록
정점 A에 대해 연결선으로 이어진 인접한 정점을 이웃(Neighbor) 이라고 하고, N(a)로 표현할 수 있다.
위 그림에서 첫번째 그림의 N(a) 는 {b, c, e} 가 된다.
인접행렬
조금 중요한 포인트다. 1행 A의 형태를 해석하자면 다음과 같다.
{0, 1, 1, 1} 이 만들어진 과정을 보자.
a에서 a로 돌아오는 연결선이 있는가? NO. => 0
a에서 b로 돌아오는 연결선이 있는가? YES. => 1
a에서 c로 돌아오는 연결선이 있는가? YES. => 1
a에서 d로 돌아오는 연결선이 있는가? YES. => 1
마찬가지로 2행 역시 정점 b를 기준으로 다른 정점과의 관계를 적어내면 된다.
멀티 그래프에서도 마찬가지로 적용된다.
얼핏 보면 인접행렬은 다 대칭인가? 싶을수도 있지만 그건 아니다.
방향성 그래프는 인접행렬에서 대칭이 아니다.
결합행렬
인접행렬과 비슷해보이지만 완전 다르다. 정점 v와 개별적인 연결선 e와의 관계를 행렬로 나타내야 한다.
1행에서 { 1, 1, 0, 0, 0, 0 } 이 만들어진 과정을 보자.
v1이 e1과 인접하는가? YES => 1
v1이 e2와 인접하는가? YES => 1
v1이 e3와 인접하는가? NO=> 0
v1이 e4와 인접하는가? NO=> 0
v1이 e5와 인접하는가? NO=> 0
v1이 e6와 인접하는가? NO=> 0
'수학 > 이산수학' 카테고리의 다른 글
[이산수학] 그래프 이론 - 여러가지 그래프 종류 (0) | 2020.10.23 |
---|---|
[이산수학] RANK 구하기 (0) | 2020.10.18 |
[이산수학] 가우스 (조던) 소거법, (기약) 행 사다리꼴 (2) | 2020.10.16 |
[이산수학] 역행렬 구하기 - 수반행렬을 이용한 방법 (0) | 2020.10.03 |
[이산수학] 행렬식의 개념 - 그래서 3*3행렬식은? (0) | 2020.09.25 |