2023/12 2

프림 알고리즘 Prim's Algorithm 증명

프림 알고리즘의 최적 여부 검증 Optimality Proof 프림 알고리즘은 매 결정을 할 때마다 그 순간에 가장 좋다고 생각되는 것을 해답으로 선택하는 그리디 알고리즘에 기반한다. 그 순간의 선택은 그 당시에는 최적일 수도 있지만 순간순간 최적이라고 생각했던 해답을 모아서 최종적인 해답을 만들었을 때, 그 해답이 궁금적으로 최적이라는 보장이 없다. 따라서 그리디 알고리즘은 항상 최적의 해답인지 검증할 필요가 있다. 프림 알고리즘이 찾아낸 신장트리가 최소비용인지 검증해야 한다. 다시 말해서, 프림 알고리즘이 최적인지를 보여야 한다. 비방향성 그래프인 G = (V, E)가 주어진다. G는 가중치가 있는 그래프이고, 이것은 전체 정점의 집합V와 전체 간선의 집합E로 이루어져 있다. F는 방문한 간선이고 E..

CS/Algorithm 2023.12.03

[알고리즘] 프림 알고리즘 Prim's Algorithm

프림 알고리즘 Prim's Algorithm이란? 최소 비용 신장 트리를 구현하는 알고리즘으로, 시작 정점에서부터 가중치의 합이 최소가 되도록 신장 트리를 확장해나가는 알고리즘이다. 프림 알고리즘의 동작 프림 알고리즘은 매번 최적의 선택을 하는 그리디 알고리즘에 기반하여 동작한다. 따라서 노드를 이동하는 순간순간마다 비용이 최소인 간선과 연결된 노드를 신장 트리 집합에 추가한다. 정점의 집합 = V 신장 트리(MST)에 추가되는 정점의 집합 = Y MST에 추가되는 간선의 집합 = F 1. 맨 처음에는 시작 정점만이 Y에 추가된다. 2. Y와 인접한 노드 중 가장 낮은 비용인 간선과 연결된 노드를 Y에 추가하고 해당 간선도 F에 추가한다. 이 때 사이클이 발생해서는 안 된다. 3. Y=V가 될 때까지 2..

CS/Algorithm 2023.12.03