본문 바로가기

Prim's Algorithm3

Advanced Algorithm - MST(Prim's Algorithm)(5) 1. 프림 알고리즘 코드구현 a) 기본그래프 구현 - 중복된 간선 정보를 제거한다. ex) (7, 'A', 'B')와 (7, 'B', 'A')는 동일하다. myedges = [ (7, 'A', 'B'), (5, 'A', 'D'), (8, 'B', 'C'), (9, 'B', 'D'), (7, 'B', 'E'), (5, 'C', 'E'), (7, 'D', 'E'), (6, 'D', 'F'), (8, 'E', 'F'), (9, 'E', 'G'), (11, 'F', 'G') ] b) 프림 알고리즘 로직구현 1. 그래프의 모든 간선정보를 저장한다. (adjacent_edges) 2. 임의의 노드를 선택하여 '연결된 노드 집합' 이라는 리스트에 삽입한다. (connected_nodes) 3. 2단계에서 선택된 노드.. 2020. 10. 3.
Advanced Algorithm - MST(Prim's Algorithm)(4) 1. 프림 알고리즘이란? - 대표적인 최소신장 알고리즘 중 하나이다.(Kruskal's Algorithm & Prim's Algorithm) a) 크루스칼 알고리즘과 프림 알고리즘의 비교 크루스칼 알고리즘은 전체 간선을 가중치 기준으로 오름차순 정렬하여, 낮은 가중치를 가진 간선이면서 동시에 사이클이 발생하지 않는 노드를 연결시켜 MST(최소신장트리)를 구하는 알고리즘이다. 프림 알고리즘은 어떤 노드와 인접한 노드의 간선만을 대상으로 하여, 인접노드 중에서 간선의 가중치가 가장 작은 간선을 선택하여 해당 인접노드를 연결하는 방식으로 MST를 구한다. 두 알고리즘 모두 탐욕 알고리즘을 기반하고 있다.(당장을 위한 최소비용을 선택하여 결과적으로 최적의 솔루션을 찾음) b) 프림 알고리즘의 로직 임의의 노드를.. 2020. 10. 2.
Advanced Algorithm - MST(concepts of the MST)(1) 1. 신장 트리(Spanning Tree)란? - 그래프 내부의 모든 노드가 연결되어 있으며, 동시에 트리의 속성을 만족하는 그래프를 의미한다. 그래프의 모든 노드가 서로 연결되어 있다.(거리는 멀어도 접근경로가 있다.) 트리의 속성을 만족한다.(사이클이 없음) 2. 최소 신장 트리(Minimum Spanning Tree)란? - 하나의 그래프를 기반으로 파생된 신장트리 중에서, 간선의 가중치 합이 최소인 신장트리를 의미한다. - Minumun Spanning Tree의 약자로 MST라고 부른다. 3. MST 대표 알고리즘 - MST 알고리즘이란, 어떤 그래프를 가지고 MST를 구하는 방법을 의미한다. - 대표적으로 크루스칼 알고리즘(Kruskal's Algorithm)과 프림 알고리즘(Prim's Al.. 2020. 9. 29.