정보관리 117회 3교시
3. MST(Minimum Spanning Tree)를 구하는 알고리즘인 크루스칼(Kruskal) 알고리즘, 프림(Prim)알고리즘을 설명하시오
문3) MST(Minimum Spanning Tree) 크루스칼(Kruskal) 알고리즘, 프림(Prim)알고리즘
답)
I. MST(Minimum Spanning Tree) 개요
- 각 간선에 가중치(비용, 거리, 시간, 교통량 등)가 있는 무방향 그래프 G에서 모든 정점들을 연결하는 가중치의 합이 최소가 되는 신장 트리
- 특징: 모든 정점 연결, 가중치 최소, 간선의 개수 n-1개, cycle 제거
II. 크루스칼(Kruskal) 알고리즘
가. 크루스칼 알고리즘 개념
정의 | 그래프 내의 모든 간선의 가중치 정보를 사전에 파악하고 이 정보를 토대로 최소 신장 트리를 구성하는 알고리즘 |
시간복잡도 | O(nlogn) |
생성 절차 | 1. 그래프 모든 간선을 가중치로 오름차순 정렬 2. 가중치가 가장 작은 간선을 하나의 집합으로 형성후 신장 트리에 추가 3. 다음 가중치의 간선을 선택해서 신장 트리에 추가 4. Cycle 이 존재하는 지 검증 후 Cycle 이면 제외 5. n-1개의 간선이 될때까지 '2~4'를 반복 |
-사이클 생성여부는 추가하고자 하는 간선의 양끝 정점이 같은 집합에 속해 있는지를 먼저 검사(union-fid 알고리즘 활용)
나. 크루스칼 알고리즘 절차
순서 | 도식 | 상세설명 |
1 | - 초기상태 - 간선의 가중치 오름차순으로 정렬 수행 |
|
2 | AD 와 CE 가 가장 짧은(가중치가 가장 작은) 간선 임의로 AD 선택 |
|
3 | CE 가 가중치가 5 로서, Cycle 을 생성하지 않는 가장 짧은 간선이므로 CE 선택 | |
4 | 가중치 6 인 DF 선택 | |
5 | 다음으로 가장 짧은 간선은 AB 와 BE 인데 임의로 AB 선택 - BD 선택시 ABD 를 연결시키면 Cycle 이 형성되기 때문에 제외 | |
6 | - 가중치 7 인 BE 선택 - Cycle 을 형성하는 BC,EF,DE 제외 |
|
6 | - EG 선택하면 모든 노드들이 연결되므로 알고리즘 수행 종료 |
- 간선의 개수를 E, 정점의 개수를 V 라고 할때 O(ElogV)의 시간복잡도를 가짐
II. 프림(Prim) 알고리즘
가. 프림알고리즘 개념
정의 | 하나의 정점을 시작점으로 Cycle을 생성하지 않는 범위내 최소가중치를 가지는 정점을 하나씩 포함하여 N-1개의 간선까지 확대하는 알고리즘 |
시간복잡도 | O(n^2) |
생성 절차 | 1. 루트정점 선택(임의의 정점 2. 연결 정점 중 최소 간선으로 정점선택 후 신장 트리에 추가 3. 2를 반복하여 부분집합에 정점을 하나씩 추가 4. Cycle 이 존재하는 지 검증 후 Cycle 이면 제외 5. 간선이 N-1이면 종료 |
- 정점을 기준으로 간선을 선택 후 하나의 집합으로 보고 인접한 정점중 최소 간선을 선택
나. 프림 알고리즘절차
순서 | 도식 | 상세설명 |
1 | 초기상태 정점 D를 시작점으로 선택 |
|
2 | - D 와 연결되어 있는 정점을 선택 - A, B, E, F 중 가중치가 가장 작은 A 선택 |
|
3 | 정점 D 또는 A 와 연결되어 있는 간선 중 가중치가 가장 작은 것 선택 - B,E, F 중 가중치가 가장 작은 F 선택 |
|
4 | 정점 D, A, F 와 연결되어 있는 간선 중 가중치가 가장 작은 것 선택 - B 선택 |
|
5 | 정점 D, A, F, B 와 연결되어 있는 간선 중 가중치가 가장 작은 것 E 선택 |
|
6 | 정점 D, A, F, B, E 와 연결되어 있는 간선 중 가중치가 가장 작은 것 C 선택 | |
7 | 정점 G는 E, F와 연결가능하나 가중치가 작은 정점 E와 연결하면 모든 정점이 연결되어 알고리즘 수행 종료 |
간선의 개수를 E, 정점의 개수를 V라고 할 때, 이진힙 사용시 O(ElogV)의 시간복잡도를 가지며, 피보나치힙 사용시 O(E+VlogV)의 시간 복잡도를 가짐
IV. 크루스칼 알고리즘과 프림 알고리즘 비교
비교항목 | 크루스칼 알고리즘 | 프림 알고리즘 |
핵심개념 | - 사전에 가중치 정보 파악하여 오름차순 정렬하여 트리 구성 | - 시작점에서 단계적으로 노드를 추가하는 방식으로 트리 구성 |
시간복잡도 | - O(ElogV) | - 이진힙 사용시 :O(ElogV) - 피보나치힙 사용시: O(E+VlogV) |
수행기법 | - Union-Find | - 서로 소인 2 개(트리정점, 비트리정점)의 집합정보 유지 |
- MST 는 정보통신, 건설분야 등에서 배선의 최소길이, 최단 통신선로, 가장 짧은 도로구간, 최단 배관길이 구성 등에 사용됨
'기출문제 > 메타반 기출풀이' 카테고리의 다른 글
프로젝트 획득가치관리(Earned Value Management) (0) | 2022.11.29 |
---|---|
운영체제 페이지 교체 알고리즘 (0) | 2022.11.29 |
제128회 관리 4교시 5번(손기봉) (0) | 2022.07.04 |
제128회 관리 4교시 4번(손선희) (0) | 2022.07.04 |
제128회 관리 2교시 5번(손선희) (0) | 2022.07.04 |