Algorithm - (15) Handling MST - 최소신장비용트리 PS

MST (Minimun Spanning Tree) : 최소비용신장트리

Kruskal

  • Kruskal’s Algorithm 크루스칼 알고리즘
    • 그래프에서 최소비용 트리 만드는 것
    • 크루스칼 알고리즘이란, 그래프 내의 모든 정점들을 가장 적은 비용으로 연결하기 위해 사용, 그래프 내의 모든 정점을 포함하고 사이클이 없는 연결 선을 그렸을 때, 가중치의 합이 최소가 되는 상황을 구하고 싶을 때 크루스칼 알고리즘을 사용

    • SOLUTION : UnionFind
      • Point : 우선 간선의 가중치를 기준으로 작은순으로 오름차순 정렬해서 정점이 서로소집합을 만족하는 경우에만 정점을 포함

Prim

  • Prim Algorithm : 정점을 추가하는 방식
    • MST 최소비용신장트리를 만드는데 간선을 선택하는 것이 아니라 임의의 정점을 하나 선택
    • 거기서부터 계속 그래프의 연결관계를 보면서 정점을 하나씩추가
    • 정점을 추가하면서 트리를 확장
    • 정점이 N개가 완성되면 트리가 완성되는 것

    • SOLUTION : priority_queue - 최소힙활용
  • prim & kruskal 차이
    • 프림 알고리즘은 꼭지점(정점)을 선택하고 그것과 연결된 가장 적은 비용의 정점을 선택
    • 크루스칼 알고리즘은 모든 비용을 순차적으로 나열하여 가장 적은 비용이 드는 간선(신장)들을 선택

Categories:

Updated: