전체 글 242

Prim, Kruskal 알고리즘

Prim 알고리즘이란? 시작 정점에서부터 출발하여 신장트리 집합을 단계적으로 확장해나가는 방법 Prim 알고리즘의 동작 방법 시작 단계에서는 시작 정점만이 MST(최소 비용 신장 트리) 집합에 포함된다. 앞 단계에서 만들어진 MST 집합에 인접한 정점들 중에서 최소 간선으로 연결된 정점을 선택하여 트리를 확장한다. (즉, 가장 낮은 가중치를 먼저 선택한다.) 위의 과정을 트리가 (N-1)개의 간선을 가질 때까지 반복한다. Prim 알고리즘을 이용한 MST(최소 신장 트리)를 만드는 과정 정점 선택을 기반으로 하는 알고리즘 이전 단계에서 만들어진 신장 트리를 확장하는 방법 Prim 알고리즘의 시간 복잡도 for 반복문이 정점의 수 n만큼 반복하고, 내부 반복은 n번 반복(Prim의 경우 O(n²), Kru..

탐욕 알고리즘 - 개요

탐욕 알고리즘이란? 입력 데이터 간의 관계를 고려하지 않고 수행 과정에서 욕심 내어 최솟값 또는 최댓값을 가진 데이터를 선택하는 알고리즘 한 번 선택 시 선택한 데이터를 버리고 다른 것을 취하지 않는다. 이러한 특성 때문에 탐욕 알고리즘들은 매우 단순, 제한적인 문제들만 해결 가능하다 Prim, Kruskal 알고리즘이 탐욕 알고리즘에 해당한다 순간의 선택이 최선인 이유 그리디 알고리즘이 사용되기 위해 필요한 조건 2가지를 만족했을 때 사용하면 그리디 알고리즘은 순간의 선택에서 최선의 선택을 할 수 있다. 조건 1. 탐욕스러운 선택 조건 → 탐욕적인 선택은 항상 안전하다는 것이 보장되어야 하며, 안전하다는 의미는 이 선택으로 인해 전체 문제의 최적해를 반드시 도출할 수 있어야 한다는 것이다. 조건 2. ..