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

2024. 11. 13. 14:50·공부하기/자료구조

Spanning Tree, 신장트리란?

그래프에 포함된 모든 정점(vertex)들을 포함하는 부분 그래프이다. (즉, 그래프 구성 edge만이 달라짐)

  • 모든 vertex는 적어도 하나의 edge에 연결되어 있다.
  • 트리이므로 cycle이 존재해서는 안 된다.
  • 주어진 하나의 그래프에 대해 다양한 신장트리가 존재할 수 있다.
  • vertex의 개수 v에 대해 (v-1)개의 edge를 가진다.

신장 트리는 DFS, BFS 등을 이용하여 구성할 수 있다. (탐색을 통해 방문한 정점 순서대로 신장 트리 구성)

 

Minimum Spanning Tree, 최소 비용 신장트리

가중치가 부여된 무방향 그래프에서, 신장 트리의 비용이 가장 적은 spanning tree를 최소 비용 신장트리라 한다.

즉, 신장트리를 구성하는 edge들의 가중치(비용)의 합이 가장 적은 신장트리이다.

 

MST 구현 알고리즘

모두 Greedy method를 사용한다.

Kruskal Algorithm

한 번에 하나의 edge씩 추가하면서 MST를 생성한다. (edge 선택을 기반으로 한다.)

- 전체 edge 중에서 가장 비용이 적은 edge를 선택한다. 사이틀 형성 유무를 확인하고, 형성하지 않을 경우 포함시킨다. 

- 이전에 만들어진 신장 트리와는 관계 없이, 남은 edge 중 가장 비용이 적은 edge를 선택하여 트리를 구성

 

관련 문제

https://school.programmers.co.kr/learn/courses/30/lessons/42861

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

Prim Algorithm

단 하나의 vertex만 갖는 트리에서 시작하여, 트리를 확장하여 MST를 구성한다. (vertex 선택을 기반으로 한다.)

- 현재 트리를 구성하는 정점들과 연결된 다른 정점들 중, 연결 비용이 최소인 vertex를 선택하여 트리에 포함시킨다.

- 이전에 만들어진 신장 트리 정점을 확인 -> 다른 정점들과의 비용을 바탕으로 트리를 확장 

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'공부하기 > 자료구조' 카테고리의 다른 글

그래프(graph)  (4) 2024.01.24
힙(Heap) Max Heap, Min Heap  (1) 2024.01.18
이진 트리(Binary Tree)  (1) 2024.01.17
트리(Tree)  (2) 2024.01.17
큐(Queue) / 원형큐(Circular Queue)  (0) 2024.01.16
'공부하기/자료구조' 카테고리의 다른 글
  • 그래프(graph)
  • 힙(Heap) Max Heap, Min Heap
  • 이진 트리(Binary Tree)
  • 트리(Tree)
다섯자두
다섯자두
All I need is 💻 , ☕️ and a dash of luck
  • 다섯자두
    subbni
    다섯자두
  • 전체
    오늘
    어제
    • 전체 글 (88) N
      • 개발 이야기 (0)
      • 만들어보기 (17)
        • FromBookToBook (5)
        • Spring (5)
        • Node.js & React (3)
        • TroubleShooting (4)
      • 공부하기 (71) N
        • Network (3)
        • Cloud (1)
        • Database (5)
        • Java (13)
        • Javascript (0)
        • Spring (9)
        • React (18)
        • Algorithm (8)
        • 자료구조 (7)
        • ETC (7) N
      • 회고 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • velog
  • 공지사항

  • 인기 글

  • 태그

    Spring
    pdf 프리뷰 실패
    mysql
    SSE
    최단거리
    자료구조
    Express
    재시도 로직
    오블완
    Database
    network
    프로젝트
    HTTP
    java
    springboot
    로그인
    outbox 패턴
    SQS
    서명알고리즘
    Til
    pdf 자동 다운로드
    redis
    실시간 데이터 전송 기술
    outbox
    티스토리챌린지
    JPA
    SQL
    알림 기능
    알고리즘
    aws
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
다섯자두
최소 비용 신장트리 (MST: Minimum Spanning Tree)
상단으로

티스토리툴바