(1)최소 비용 신장 트리(MST) 기본이론

2019. 5. 20. 02:21Algorithm/이론

최소 비용 신장 트리(MST)

 

최소비용신장트리란

아래의 사진에서 각 노드들이 최소의 비용으로 모든 노드들이 연결되어야 하는 경우를 말한다. 

자세히 보면 무방향 가중치 그래프이다.  각 노드사이에 방향성은 없고 노드 사이에 가중치가 존재하는 형태이다. 

아래와 같은 사진을 보면 굵을 곡선으로 이루어진 트리가 최소비용신장트리이다. 

하지만 사진을 자세히 보면 알 수 있듯이 최소비용신장트리는 유일하지 않다. 만약 b와 c의 연결고리 대신 a와 h를 선택해도 같은 가중치에 모든 노드들이 연결되었을 것이다. 

 

위의 내용들을 정리해보자면 

 

  • 무방향 가중치 그래프이다.

  • 각 에지에 대한 가중치는 w(u, v)와 같이 표현가능하다. 

  • 조건
    - T에 속한 에지들에 의해 그래프의 모든 정점들이 서로 연결된다.
    - 가중치의 합이 최소가된다. 

왜 트리일까?

이전에 공부했던 이진 트리는 뭔가 나무를 거꿀로 한 것과 같은 모양이여서 좀 이해가 됐는데 이 친구는 트리같이 생기지도 않았으면서 왜 트리라고 부르는 것일까?? 

사실 트리에 대한 정의는 아래와 같이 정의된다. 

싸이클이 없는 연결된(Connected) 무방향 그래프를 트리라고 부른다. 모든 최소신장트리는 싸이클이 없다. 

왜 그런 것일까?? 

싸이클이 있다는 것은 각 노드들이 여러 경로를 통해 연결되어 있다는 것인데 최소 신장트리는 최소의 거리가 되는 경로만 선택하여 고르기 때문에 사이클이 만들어 질 수 없다. 

 

-> 그러므로 항상 트리가된다. 

**지나가는 팁**
인접과 연결의 차이

인접: 노드 사이에 엣지로 연결되어있다.
연결: 노드들을 통과하여 도달할 수 있으면 연결되어 있다고 한다. 

'Algorithm > 이론' 카테고리의 다른 글

(3)최소 비용 신장 트리(MST) Kruskal 알고리즘  (0) 2019.05.20
(2)최소 비용 신장 트리(MST) Generic MST  (0) 2019.05.20
Hashing  (0) 2019.04.29
이진 탐색트리  (0) 2019.04.24
이진트리  (0) 2019.04.22