X

최소 신장 트리 (MST, Minimal Spanning Tree)

1. 비순환 연결 트리, 최소 신장 트리

(1) 최소 신장 트리의 개념

  • 연결 그래프의 연결된 간선 일부를 사용하여 모든 정점을 포함하여 가중치의 합이 최소가 되는 트리

(2) 최소 신장 트리의 특징

모든 정점 포함 – 그래프에 포함된 모든 정점을 포함
비순환 구성 – 구성된 트리는 순환이 존재하지 않음
최소 비용 – 모든 간선의 가중치 합을 최소화

2. 최소 신장 트리 개념도

  • 모든 정점 포함, 비순환, 가중치 합이 최소가 되는 신장 트리

3. 최소 신장 트리 대표 알고리즘

(1) Prim 알고리즘

개념 – 노드 연결 간선 가중치 합이 최소가 되도록 인접 정점을 단계적 수행하는 비순환 기법
MST
생성 절차
① 임의 정점을 선택하여 최소 신장 트리의 초기 집합으로 구성
② 앞 단계 신장 트리 집합에 인접한 정점 중 최저 비용 간선으로 연결된 정점 선택 확장
③ n-1개의 간선이 될 때까지 ② 반복
MST
생성 방법
– 루트 노드를 기준으로 하나의 트리를 확장해 나가는 방식

(2) Kruskal 알고리즘

개념 – 간선 비용 정렬하여 최소 비용 집합부터 선택하는 최소 비용 비순환 그래프 알고리즘
MST
생성 절차
① 그래프 G의 모든 간선을 비용으로 정렬
② 가장 작은 가중치의 간선을 하나의 집합으로 형성하고, 트리에 추가
③ n-1개의 간선이 될 때까지 ② 반복
MST
생성 방법
– 간선의 비용을 정렬하여 최소 비용 간선부터 순차적으로 트리를 추가하여 확장하는 방식

(3) Solin 알고리즘

개념 – 단계마다 여러 개의 간선이 선택되는 방법
MST
생성 절차
① 그래프의 모든 정점들이 트리를 형성
② 각 트리에 대해 최소 비용를 갖는 간선을 선택하여 연결(순환구조는 피함)
③ n-1개의 간선이 될 때까지 ② 반복
MST
생성 방법
– 인접 간선 중 최소 비용 간선 선택, Prim유사
– 모든 간선을 비용으로 정렬, Kruskal과 유사

4. 최소 신장 트리의 응용 사례

도로 건설 – 도시를 모두 연결하여 도로 길이 최소화
전기 회로 – 단자를 모두 연결하여 전선 길이 최소화
통신 – 전화선의 길이가 최소화하여 케이블망 구축
배관 – 파이프를 모두 연결하여 총 길이를 최소화
네트워크 – 라우터 경로 설정, 최적의 라우팅 경로 선택

 

Categories: 알고리즘/AI
도리: