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

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

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

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

  • 2020.12.06 16:34
  • 학부 수업/이산수학
반응형

오일러 경로, 오일러 순회는 연결 그래프의 모든 간선을 단 한 번씩만 방문하며, 시작과 끝이 같은 노드인 보행을 말한다.
이름을 보면 추측할 수 있다시피 레온하르트 오일러가 만들었다.

모든 노드가 짝수 차수를 갖는 연결 그래프는 오일러 경로를 갖는다.

반대로 오일러 경로가 있는 그래프는 모든 노드의 차수가 짝수인 연결 그래프이다.

증명

$W$가 $v_0 - v_1 - \cdots - v_k$로 구성된, 각 간선을 한 번씩만 방문하는 가장 긴 보행, 즉 오일러 경로라 하자.
이때, $G=(V,E)$에서 모든 노드의 차수는 짝수이다.

$v_k$이후로 $W$에는 속하지 않은 다른 간선이 더 이어지는 경로가 있을 경우, 이는 $W$가 가장 긴 보행이라는 전제를 깨므로 거짓이다.

$v_0 \neq v_k$라면, $v_k$가 홀수인 차수를 갖게 되는데, 이렇게 되면 오일러 경로가 아니므로 $v_0 = v_k$이다. 이때, 위 증명에 의해 $G$의 모든 노드가 $W$에 속해있으므로, 모든 노드는 짝수인 차수를 갖는 것을 알 수 있다.

방향 그래프와 인접행렬

방향 그래프에서는 간선의 방향이 제한된다. 또한 차수도 내차수indegree와 외차수outdegree로 나뉘는데, 예를들어 $v_1$의 내차수는 1, 외차수는 3이다.

위 방향 그래프 $G=(V,E)$에 대한 인접행렬 $A={a_{i,j}$는 다음과 같이 나타낼 수 있다.

$$ A = \begin{bmatrix} 1&1&1\\0&0&1\\0&1&0 \end{bmatrix}$$

이때, 인접행렬을 $k$ 제곱한 행렬의 값 $p_{i,j}^k$는 $v_i$에서 $v_j$까지의 길이 $k$인 방향 보행의 수를 나타낸다.

예를들어, 위 행렬 $A$를 제곱한 아래 행렬을 보자.

$$A^2 = \begin{bmatrix}1&2&2\\0&1&0\\0&0&1\end{bmatrix}$$

이는, $v_1$에서 $v_3$으로 향하는 길이가 2인 보행이 2가지 존재함을 나타낸다. 실제로 세어보면, $v_1 - v_1 - v_3$와 $v_1 - v_2 - v_3$로 두 가지가 있다.

방향 그래프 용어

어떤 방향 그래프 $G$에서, 모든 노드간에 오고갈 수 있는 경로가 존재하면 강하게 연결되었다Strongly Connected고 한다.

순환이 없는 방향 그래프를 Directed Acyclic Graph(DAG)라고 한다.

토너먼트 그래프Tournament Graph

출처: 위키백과

어떤 방향 그래프 $G=(V, E)$에서, $V$안의 모든 서로 다른 노드 $u, v$에 대해 $u\rightarrow v$ 혹은 $v \rightarrow u$ 경로가 존재하면, 토너먼트 그래프라고 한다.

해밀턴 경로Hamiltonian Path

해밀턴 경로는 방향 그래프의 모든 노드를 각각 한 번씩만 방문하는 경로이다.
토너먼트 그래프는 하나의 해밀턴 경로를 가진다.

증명

귀납법을 통해 토너먼트 그래프가 해밀턴 경로를 가짐을 증명할 수 있다.
n이 그래프의 노드 갯수라고 할 때, $P(1)$은 참이다.

$P(n+1)$에서, 노드 $v$하나를 그래프에서 제외해보자. $P(n)$이 참이므로, 남은 노드들은 나름의 해밀턴 경로를 만들 것이다.

이제 다시 $v$를 그래프에 넣어보자. 토너먼트 그래프이므로, 해밀턴 경로가 끝난 노드 $v_n$에서, $v$로 향하는 간선이나, $v_{n-k}$에서 $v$, $v$에서 $v_{n-k+2}$로 향하는 간선들이 존재한다. 즉, $v$를 노드가 $n$개인 해밀턴 경로에 끼워넣을 수 있다.

그러므로 토너먼트 그래프에선 항상 해밀턴 경로가 존재하게 된다.

반응형

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

15. 적분의 상한과 하한(Lower/Upper Bound of Integration)  (0) 2020.12.06
14. 관계와 부분 순서 (Relations and Partial Orders)  (0) 2020.12.06
12. 통신 네트워크 (Communication Networks)  (0) 2020.12.06
11. 그래프 이론과 신장 트리 (Spanning Tree)  (1) 2020.12.05
10. 매칭 알고리즘 (Matching Algorithm)  (1) 2020.10.18

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 15. 적분의 상한과 하한(Lower/Upper Bound of Integration)

    15. 적분의 상한과 하한(Lower/Upper Bound of Integration)

    2020.12.06
  • 14. 관계와 부분 순서 (Relations and Partial Orders)

    14. 관계와 부분 순서 (Relations and Partial Orders)

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

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

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

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

    2020.12.05
다른 글 더 둘러보기

정보

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

컴퓨터와 수학, 몽상 조금

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

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (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.

티스토리툴바