일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 알고리즘 연습
- MAC
- js
- Algorithm
- django widget
- 장고
- django ORM
- CSS
- react
- 파이썬
- Baekjoon
- API
- c++
- es6
- javascript
- java
- AWS
- django rest framework
- DRF
- 알고리즘
- form
- web
- HTML
- 알고리즘 문제
- PYTHON
- 알고리즘 풀이
- 파이썬 알고리즘
- Django
- Git
- 백준
Archives
- Today
- Total
수학과의 좌충우돌 프로그래밍
[Algorithm] Spanning Tree 와 MST, 스패닝 트리와 최소 스패닝 트리 본문
Spanning Tree 란?
Spanning Tree
란 스패닝 트리라고 읽으며 다른 말로 신장트리 라고도 합니다. 이는 그래프 내의 모든 정점을 포함하는 트리를 말합니다. 그래프의 일부 간선을 이용해 만든 트리로서 항상 그래프의 부분집합이 됩니다.
Spanning Tree 의 특징
Spanning Tree
는 이름에서도 알 수 있듯이 트리 중 하나이기 때문에 트리의 특징은 모두 포함합니다.
- 하나의 그래프에는 여러 Spanning Tree 를 가질 수 있습니다.
- 모든 정점을 포함하고 사이클은 생기면 안되기 때문에 N 개의 노드에 대해서 정확하게 N-1 개의 엣지를 가지게 됩니다.
MST 란?
MST
란 Spanning Tree의 한 종류로서 사용되는 간선의 가중치 합이 최소인 트리를 말합니다. 이 때 조심해야 할 점은 간선의 수가 최소라고 해서 최소비용은 아닙니다.
MST 구현
MST 를 구현하는데 있어서 몇 가지 알고리즘이 있습니다. 그 중에서 대표적인 2가지를 알아보도록 합시다.
-
Kruskal 알고리즘
ssungkang.tistory.com/entry/Algorithm-Kruskal-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
-
Prim 알고리즘
ssungkang.tistory.com/entry/Algorithm-Prim-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
MST 의 활용
MST
는 실제 실생활에서 많이 쓰이는 중요한 개념입니다. 실생활을 그래프로 나타낼 수 있을 경우, 각 노드를 연결하는 최소 비용을 구하는 경우라면 말이죠.
대표적으로 각 도시를 모두 연결하는 최소 도로, 각 단자를 모두 연결하는 최소 케이블 망 등 여러 분야에서 중요하게 사용되고 있습니다.
'알고리즘 > 이론' 카테고리의 다른 글
[Algorithm] Prim 알고리즘 (1) | 2019.11.05 |
---|---|
[Algorithm] Kruskal 알고리즘 (0) | 2019.11.05 |
[Algorithm] 세그먼트 트리(Segment Tree) (3) | 2019.09.27 |
[Algorithm] 비트마스크 (0) | 2019.09.23 |
[Algorithm] 유니온 파인드(Union - Find) (11) | 2019.09.22 |
Comments