이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

11. 그래프 이론과 신장 트리 (Spanning Tree)

  • 2020.12.05 17:30
  • 학부 수업/이산수학
반응형

보행walk이란 간선으로 연결된 노드들의 시퀀스이다. 예를들어, $v_1 - v_2 - v_3 - \cdot - v_k$는 $v_1$에서 시작하여 $v_k$로 가는 보행이다. 보행의 길이는 시작 노드부터 끝 노드까지 과정에 있는 노드의 갯수이다.

만약 보행에 포함된 노드가 모두 다른 노드일 경우, (즉, 한 번 방문한 노드는 재방문하지 않는 경우) 이는 경로path라고 한다.

  • 만약 노드 $u$에서 $v$로 가는 보행이 존재한다면, $u$에서 $v$로 가는 경로 또한 존재한다.
  • $u$에서 $v$로 가는 경로가 존재한다면, $u$와 $v$는 연결되었다connected고 한다.
  • 그래프의 모든 노드가 서로 연결되었다면, 연결 그래프connected graph라 한다.

어떤 보행의 시작 노드와 끝 노드가 같다면, 이 보행은 닫힌 보행closed walk이라 한다. 이때, 보행에 속한 노드가 3개 이상이고, 이 보행의 끝 노드를 제외한 모든 노드가 다른 노드라면 순환cycle이라고 한다.

  • 닫힌 보행: $a - b - c - b - a, a - a$
  • 순환: $a - b - c - d- a$

트리tree

연결 그래프이면서, 순환이 없는acyclic 그래프는 트리tree라고 한다. 트리에서, 차수가 1인 노드를 리프leaf라고 한다.
트리의 부그래프 중에, 연결된 그래프들은 모두 트리이다. 이 부그래프들을 부트리subtree라 한다.

$n$개의 노드를 갖는 트리는 $n-1$개의 간선을 갖는다. 이는 귀납적으로 증명 가능한데, $E(n)$이 $n$개의 노드를 가진 트리의 간선 갯수일 때, $E(n+1) = E(n) + 1$이고, $E(2) = 1$이다.

신장 트리spanning tree:ST

신장 트리(스패닝 트리)는 어떤 연결 그래프 $G$의 모든 노드를 포함하며, 트리인 부그래프를 말한다.

점선이 신장 트리

모든 연결 그래프는 신장 트리를 갖는다.

최소 신장 트리Minimum Spanning Tree

가중치가 있는 연결 그래프에서, 가중치의 합이 가장 적은 간선들로 구성된 스패닝 트리를 최소 신장 트리라고 한다.
최소 신장 트리를 얻기 위한 다양한 알고리즘이 존재한다.

크루스칼 알고리즘Kruskal Algorithm

탐욕법을 이용한 알고리즘이다. 매번 가능한 최선의 선택 즉, 가장 가중치가 낮은 간선을 선택하는데, 해당 간선을 선택하였을 때 트리에 순환이 발생하면 해당 간선은 포기한다. 이를 반복하여 전체 노드를 연결하면 최소 신장 트리가 된다.

귀납법을 통한 증명

$S$가 크루스칼 알고리즘으로 선택된 $n$번째까지의 간선들의 집합이라 하자. 크루스칼 알고리즘이 맞다면 아래가 성립한다.

$$ \exists \text{ MST } T = (V, E) \text{ for G such that } S \subseteq E $$

$P(n)$일 때, $S$는 비어있으므로 $S\subseteq E$는 참이다.

$e$가 알고리즘에 의해 $n+1$번째로 선택된 간선이라 하고, $T*$이 $S \subseteq E*$인 $(V, E*)$ MST라 하자.

$e\in E*$인 경우, $S\cup {e} \subseteq E*$이므로 참이다.

$e\not\in E*$인 경우, 알고리즘에 의해 $S\cup {e}$는 순환이 없으므로, $(V, E* \cup e)$에 순환이 있는 건데, 알고리즘이 $e$를 선택한 것은 $E*$에 속한 $e$와 충돌하는 간선 $e'$보다 $e$의 가중치가 작거나 같기 때문이다. 그러므로 $e'$를 $e$로 대체할 경우, 새로운 트리 $T**$은 충돌 요소가 사라졌으므로 순환이 없고, 여전히 연결 그래프이며 $G$의 모든 노드를 포함한다.

그러므로 $T**$는 $G$의 스패닝 트리이며, $\{\text{weight}(e) \leq \text{weight}(e')$이고 $T*$가 MST이므로 $T**$도 최소 스패닝 트리이다.

반응형

'학부 수업 > 이산수학' 카테고리의 다른 글

13. 그래프 이론과 오일러 순회, 해밀턴 경로 (Euler Tour, Hamiltonian Path)  (0) 2020.12.06
12. 통신 네트워크 (Communication Networks)  (0) 2020.12.06
10. 매칭 알고리즘 (Matching Algorithm)  (1) 2020.10.18
9. 그래프 이론과 P-NP 문제 (Graph Theory and P-NP Problem)  (2) 2020.10.18
8. RSA 암호화 (RSA Encryption Algorithm)  (1) 2020.10.17

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 13. 그래프 이론과 오일러 순회, 해밀턴 경로 (Euler Tour, Hamiltonian Path)

    13. 그래프 이론과 오일러 순회, 해밀턴 경로 (Euler Tour, Hamiltonian Path)

    2020.12.06
  • 12. 통신 네트워크 (Communication Networks)

    12. 통신 네트워크 (Communication Networks)

    2020.12.06
  • 10. 매칭 알고리즘 (Matching Algorithm)

    10. 매칭 알고리즘 (Matching Algorithm)

    2020.10.18
  • 9. 그래프 이론과 P-NP 문제 (Graph Theory and P-NP Problem)

    9. 그래프 이론과 P-NP 문제 (Graph Theory and P-NP Problem)

    2020.10.18
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (276)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (42)
      • 회고 & 계획 (16)
      • 내 이야기 (8)
      • 리뷰 (3)
      • 군대에 간 공돌이 (9)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
반응형

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바