나뭇잎 교과서

대각화의 활용

해마다, 날마다 같은 규칙으로 바뀌는 양은 \(\vec{x}_{n+1} = A\vec{x}_n\)으로 나타납니다. 대각화하면 오래 지난 뒤의 모습은 가장 큰 고윳값과 그 고유벡터가 정한다는 것을 알 수 있습니다. 이 절에서는 공유 자전거가 두 대여소에 어떤 비율로 모이는지 모의 실험과 비교하고, 멸종 위기종의 개체 수를 늘리려면 어느 생존율을 올려야 하는지 찾아봅니다.

본문

대각화의 활용

본문

학교 앞 대여소 A와 지하철역 대여소 B에 공유 자전거 100대가 있다. 하루 동안 A에 있던 자전거의 80%는 A로 돌아오고 20%는 B로 가며, B에 있던 자전거의 30%는 A로, 70%는 B에 남는다. 첫날 아침 100대가 모두 A에 있었다면, 며칠 뒤 두 대여소의 자전거 수는 어떻게 될까? 처음에 B에 모두 있었다면 결과가 달라질까? 운영 회사는 대여소마다 거치대를 몇 개씩 두어야 할까?

날0123510 A에서 시작10080706561.360.04 B에서 시작0304552.558.159.94 어디서 시작하든 A는 60대, B는 40대로 다가간다. 차이는 하루마다 절반으로 준다.
그림 1. 처음 상태와 상관없이 자전거는 A에 60대, B에 40대인 상태로 모인다.
먼저 알아야 할 것행렬의 대각화(행렬의 대각화), 등비수열의 극한, 확률.

3.6.1전이행렬과 그 거듭제곱

대여소 A, B의 자전거 수를 벡터 \(\vec x_n = (a_n, b_n)\)으로 쓰면, 다음 날의 수는 \(a_{n+1} = 0.8a_n + 0.3b_n\), \(b_{n+1} = 0.2a_n + 0.7b_n\)이다. 이것은 행렬 \(M = \begin{pmatrix}0.8 & 0.3\\ 0.2 & 0.7\end{pmatrix}\)을 곱하는 일이어서 \(\vec x_n = M^n\vec x_0\)이다. 각 열의 합이 1인 이런 행렬을 전이행렬이라 하며, 다음 상태가 현재 상태에만 달려 있는 변화를 마르코프 연쇄라 한다. 며칠 뒤의 상태를 알려면 \(M^n\)을 구해야 하고, 대각화가 그 계산을 간단하게 만든다.

정리 3.6.1 전이행렬의 고윳값과 정상 상태

열의 합이 모두 1인 전이행렬은 고윳값 1을 가지며, 그 고유벡터를 성분의 합이 전체 양이 되도록 맞춘 것을 정상 상태라 한다. 나머지 고윳값의 절댓값이 1보다 작으면, 어떤 처음 상태에서 출발해도 \(\vec x_n\)은 정상 상태로 수렴하고, 남은 차이는 그 고윳값의 \(n\)제곱으로 줄어든다.

\(M\)의 고윳값은 대각합 1.5와 행렬식 \(0.56 - 0.06 = 0.5\)에서 1과 0.5이다. 고윳값 1의 고유벡터는 \((M - I)\vec v = \vec 0\), 곧 \(-0.2a + 0.3b = 0\)에서 \((3, 2)\)이고, 0.5의 고유벡터는 \((1, -1)\)이다. 처음 상태를 두 고유벡터로 나누면, 고윳값 1의 부분은 그대로 남고 0.5의 부분은 하루마다 절반으로 줄어든다. 그래서 결국 \((3, 2)\) 방향, 곧 A와 B가 \(3 : 2\)인 상태만 남는다. 처음 상태는 0.5의 부분의 크기만 바꿀 뿐이어서, 어디서 시작해도 같은 상태로 모인다.1

3.6.2개체군의 앞날도 같은 방법으로

멸종 위기종의 개체 수를 어린 개체와 어른 개체로 나누고, 해마다 어린 개체가 어른이 되는 비율과 어른이 낳는 새끼 수로 행렬을 만들면 같은 방법으로 앞날을 예측한다. 이 행렬의 가장 큰 고윳값이 1보다 크면 개체 수가 늘고, 작으면 줄어 멸종에 다가간다. 그래서 어떤 생존율을 높여야 가장 큰 고윳값이 1을 넘는지 계산해 보호 정책을 정한다. 고유벡터는 오랜 시간이 지난 뒤 어린 개체와 어른 개체의 비율을 알려 준다.

고윳값고유벡터처음 (100, 0)의 몫n일 뒤 1(3, 2)20(3, 2) = (60, 40)그대로 0.5(1, −1)40(1, −1) = (40, −40)0.5ⁿ배 aₙ = 60 + 40 × 0.5ⁿ, bₙ = 40 − 40 × 0.5ⁿ
그림 2. 고윳값 1의 몫이 정상 상태이고, 고윳값 0.5의 몫은 날마다 절반으로 사라진다.

3.6.3예제 풀이

예제 3.6.2

처음 100대가 모두 A에 있을 때 \(n\)일 뒤 A의 자전거 수를 구하여라. A의 자전거 수가 정상 상태와 1대보다 적게 차이 나는 것은 며칠째부터인가? 거치대를 몇 개씩 두면 좋겠는가?

\((100, 0) = 20(3, 2) + 40(1, -1)\)이므로 \(\vec x_n = 20(3, 2) + 40\times0.5^n(1, -1)\)이고, \(a_n = 60 + 40\times0.5^n\)이다. \(n = 3\)이면 65, \(n = 5\)이면 61.25로 그림 1과 같다.

\(40\times0.5^n < 1\)이려면 \(2^n > 40\), 곧 \(n \ge 6\)이다. 그래서 엿새째부터는 A에 거의 60대, B에 40대가 있다. 정상 상태에 날마다 오가는 흔들림을 고려해, A에 60대보다 조금 많게, B에 40대보다 조금 많게 거치대를 두면 된다. 즉 다음 상태가 행렬 곱으로 정해지는 변화는 전이행렬을 대각화해 고윳값의 거듭제곱으로 계산하고, 고윳값 1의 고유벡터가 오랜 뒤의 정상 상태를, 나머지 고윳값이 그 상태로 다가가는 빠르기를 알려 준다.

아래 탐구 카드에서 공유 자전거의 이동을 전이행렬로 계산해 정상 상태를 찾고, 멸종 위기종의 개체군 행렬에서 어느 생존율을 높여야 하는지 알아보자.

  1. 마르코프 연쇄는 1906년 러시아의 마르코프가 소설 속 모음과 자음이 이어지는 규칙을 분석하며 처음 연구했다. 오늘날에는 날씨 예측, 웹 검색 순위, 스마트폰 자판의 다음 단어 추천에도 같은 생각이 쓰인다.
마무리

다음 상태가 현재 상태에 행렬을 곱해 정해지는 변화는 \(\vec x_n = M^n\vec x_0\)이고, 전이행렬을 대각화하면 처음 상태를 고유벡터로 나누어 각 몫이 고윳값의 \(n\)제곱으로 변하는 것으로 계산한다. 열의 합이 1인 전이행렬은 고윳값 1을 가지며 그 고유벡터가 정상 상태이고, 나머지 고윳값이 정상 상태로 다가가는 빠르기를 정한다. 처음 질문의 자전거는 어디서 시작하든 A에 60대, B에 40대로 모이며, 그 차이는 하루마다 절반으로 줄어든다.

탐구 1

공유 자전거는 며칠 뒤 어느 대여소에 모일까?

마르코프 연쇄와 대각화 · 시뮬레이션

  1. 질문공유 자전거 대여소 A, B가 있다. 하루 동안 A의 자전거 중 일부는 B로, B의 일부는 A로 옮겨 간다. 이 비율이 날마다 같다면, 처음에 자전거를 어떻게 두든 결국 같은 비율로 나뉠까? 그 비율은 무엇이 정할까?
  2. 복원\(A = PDP^{-1}\)이면 \(A^n = PD^nP^{-1}\)이고, \(|\lambda| < 1\)인 고윳값의 \(\lambda^n\)은 0으로 간다.
  3. 설명A, B의 비율을 \(\vec{x}_n\)이라 하면 \(\vec{x}_{n+1} = T\vec{x}_n\), \(T = \begin{pmatrix} 1 - p & q \\ p & 1 - q \end{pmatrix}\)이다(열의 합이 1인 전이행렬). \(T\)의 고윳값은 1과 \(1 - p - q\)이다. 고윳값 1의 고유벡터 \(\vec{s} = \frac{1}{p + q}(q, p)\)를 \(\vec{x}_0\)에서 떼어 내면 나머지는 날마다 \((1 - p - q)\)배가 되어 사라지므로 \(\vec{x}_n \to \vec{s}\)이다. 처음 상태와 상관없이 고윳값 1의 고유벡터가 장기 비율을 정한다.
  4. 연결이렇게 다음 상태가 지금 상태만으로 정해지는 과정을 마르코프 연쇄라고 한다. 페이지랭크, 날씨 모형, 고객의 브랜드 이동 분석이 모두 같은 계산이다. 둘째 고윳값의 크기가 수렴 속도를 정한다.
  5. 적용처음 비율을 바꿔도 곡선이 같은 높이로 모이는지 보자. \(p\), \(q\)를 바꾸면 장기 비율과 수렴 속도가 어떻게 바뀌는가? \(p + q\)가 1에 가까울 때와 0.1일 때를 비교해 보자. 점은 자전거 300대를 하나씩 무작위로 움직인 모의 실험이다.
  6. 판단이 비율은 수업용으로 정한 모의 값이다. 실제 대여소는 요일·날씨·시간대에 따라 비율이 바뀌어 전이행렬이 날마다 같지 않다. 운영사는 모형의 예측과 실제 기록을 비교해 자전거를 다시 배치한다.

확인조건이 달라지면

\(p = 0.1\), \(q = 0.4\)이면 오래 지난 뒤 A에 있는 자전거의 비율은?

탐구 2

멸종 위기종을 살리려면 어느 생존율을 높일까?

단계별 개체군 모형과 고윳값 · 도전

수치는 수업용으로 정한 모식 값이다. 처음에는 새끼 50, 어른 50마리이다.

  1. 질문어떤 바다거북은 알을 많이 낳지만 새끼가 어른까지 살아남기 어렵다. 보호 예산이 한정되어 있다면 새끼를 지키는 것과 어른을 지키는 것 중 어느 쪽이 개체 수를 늘리는 데 효과적일까?
  2. 복원\(\vec{x}_{n+1} = A\vec{x}_n\)이면 \(\vec{x}_n = A^n\vec{x}_0\)이고, 대각화하면 절댓값이 가장 큰 고윳값의 항이 결국 다른 항을 압도한다.
  3. 설명새끼 \(J\), 어른 \(A\)의 수를 \(\binom{J_{n+1}}{A_{n+1}} = \begin{pmatrix} 0 & f \\ s_1 & s_2 \end{pmatrix}\binom{J_n}{A_n}\)으로 나타낸다(나이별 레슬리 행렬을 성장 단계별로 바꾼 단계별 개체군 모형). 가장 큰 고윳값 \(\lambda\)가 한 해의 증가율이 되어 \(\lambda > 1\)이면 늘고 \(\lambda < 1\)이면 줄어든다. 그 고유벡터가 오래 지난 뒤의 새끼와 어른의 비율이다. 여기서 \(\lambda\)는 \(\lambda^2 - s_2\lambda - fs_1 = 0\)의 양의 근이다.
  4. 연결생태학에서는 이런 행렬 모형으로 어느 단계의 생존율이 \(\lambda\)에 가장 큰 영향을 주는지 따져 보호 정책을 정한다. 붉은바다거북 연구에서는 알과 새끼보다 큰 개체의 생존율을 높이는 편이 효과가 크다는 분석이 알려져 있다.
  5. 적용처음 값에서는 개체 수가 줄어든다. \(f\), \(s_1\), \(s_2\) 중 하나만 0.1씩 올려 \(\lambda \ge 1\)을 만들려면 어느 것을 몇 번 올려야 하는가? 그래프가 곧은 직선으로 변하는 것(로그 눈금)은 무엇을 뜻하는가?
  6. 판단이 모형은 먹이나 공간의 한계를 넣지 않아 \(\lambda > 1\)이면 끝없이 늘어난다. 실제 개체군은 어느 수준에서 멈춘다. 또 실제 생존율은 해마다 흔들리므로 한 번 계산한 \(\lambda\)를 확정된 미래로 보면 안 된다.

확인조건이 달라지면

\(f = 2\), \(s_1 = 0.5\), \(s_2 = 0\)이면 가장 큰 고윳값 \(\lambda\)는?

AI 출제 문항연습문제 풀어보기11문항
Esc

↑↓ 고르기Enter 열기