본문 바로가기
컴퓨터과학

최소 스패닝 트리 (Kruskal, Prim) 알고리즘 - 효율적인 연결을 위한 두 가지 방법

by 코드그래피 2025. 1. 20.
반응형

• 최소 스패닝 트리(MST)란 무엇인가?

 

최소 스패닝 트리(MST)는 연결 그래프에서 모든 정점을 포함하는 트리 중에서 간선의 가중치 합이 최소가 되는 트리를 말합니다. 주로 네트워크 설계, 전자 회로 설계, 도로망 구축 등 다양한 최적화 문제에서 활용됩니다. MST를 구성하는 두 가지 유명한 알고리즘은 Kruskal 알고리즘Prim 알고리즘입니다. 이 두 알고리즘은 각각 그래프의 특징에 따라 다르게 작동하지만, 모두 최소 스패닝 트리를 찾는 데 사용됩니다.

 

이 글에서는 두 알고리즘의 원리와 동작 방식에 대해 설명하고, 각 알고리즘이 어떤 상황에서 더 효율적인지 비교해 보겠습니다.

 

• Kruskal 알고리즘 (Kruskal’s Algorithm)

 

Kruskal 알고리즘은 간선 기반의 알고리즘입니다. 즉, 그래프의 간선들을 가중치 순으로 정렬한 후, 간선을 하나씩 선택하면서 트리를 만들어 갑니다. 간선을 추가할 때는 두 정점이 이미 연결되어 있지 않으면 그 간선을 추가하고, 연결된 경로를 만들어 가는 방식입니다. 이 과정을 통해 최종적으로 최소 스패닝 트리를 생성합니다.

 

Kruskal 알고리즘의 단계

  • 1. 그래프의 모든 간선을 가중치 순으로 정렬합니다.
  • 2. 가장 작은 간선부터 하나씩 선택하여 트리에 추가합니다.
  • 3. 간선을 추가할 때, 사이클이 생기지 않도록 확인합니다. 사이클이 생기면 그 간선은 제외하고, 다음 작은 간선을 선택합니다.
  • 4. 모든 정점이 연결될 때까지 이 과정을 반복합니다.

 

Kruskal 알고리즘의 특징

  • 장점: 구현이 간단하고, 간선의 개수가 적을 때 효율적입니다.
  • 단점: 간선을 모두 정렬해야 하므로 시간이 많이 소요될 수 있습니다. 특히 간선이 많은 그래프에서는 비효율적일 수 있습니다.

 

• Prim 알고리즘 (Prim’s Algorithm)

 

Prim 알고리즘은 정점 기반의 알고리즘입니다. 이 알고리즘은 임의의 시작 정점에서 출발하여 최소 비용으로 인접한 정점들을 선택해 가며 스패닝 트리를 확장해 나갑니다. 새로운 정점을 추가할 때마다 가장 적은 가중치의 간선을 선택하여 트리를 확장합니다.

 

Prim 알고리즘의 단계

  • 1. 임의의 시작 정점을 선택하여 트리를 시작합니다.
  • 2. 트리에 인접한 정점들 중에서 가장 작은 가중치를 가진 간선을 선택하여 트리에 추가합니다.
  • 3. 새로운 정점이 추가되면 그 정점과 연결된 간선들을 후보로 고려하여, 다음 최소 가중치를 가진 간선을 선택합니다.
  • 4. 모든 정점이 트리에 포함될 때까지 이 과정을 반복합니다.

 

Prim 알고리즘의 특징

  • 장점: 간선이 많고 정점이 적은 그래프에서 더 효율적입니다.
  • 단점: 초기 정점 선택에 따라 성능 차이가 있을 수 있으며, 간선이 적은 그래프에서 비효율적일 수 있습니다.

 

• Kruskal과 Prim의 비교

구분 Kruskal 알고리즘 Prim 알고리즘
기반 간선 기반 정점 기반
실행 시간 O(E log E)(E: 간선의 수) O(V^2) (V: 정점의 수)
효율적일 때 간선 수가 적은 그래프 정점 수가 적은 그래프
주요 연산 간선 정렬, Union-Find 최소 우선순위 큐(Priority Queue)

 

  • • Kruskal 알고리즘은 간선이 적을 때 더 효율적입니다. 그래프가 희소(sparse)할 때 좋습니다.
  • • Prim 알고리즘은 정점이 적은 그래프에서 더 효율적입니다. 밀집(dense)한 그래프에서 빠르게 동작합니다.

 

• 결론

 

최소 스패닝 트리는 다양한 분야에서 중요한 역할을 합니다. Kruskal과 Prim 알고리즘은 각각 다른 방식으로 최소 스패닝 트리를 찾지만, 그 목적은 동일합니다. 그래프의 특성과 문제의 요구 사항에 따라 적합한 알고리즘을 선택하는 것이 중요합니다.

  • Kruskal 알고리즘은 간선이 적거나 분리된 그래프에서 더 효율적이며, 구현이 간단하고 직관적입니다.
  • Prim 알고리즘은 밀집된 그래프에서 효율적으로 동작하며, 실시간으로 트리를 확장하는 방식이 특징입니다.

 

이 두 알고리즘은 각각의 강점이 있기 때문에, 그래프의 구조에 따라 선택적으로 사용할 수 있습니다. 최소 스패닝 트리를 효율적으로 구성하려면 그래프의 특성을 잘 파악하는 것이 중요합니다.

 

참고 자료

반응형