확률 로봇 연습 질문 대답 2-2

문제.
한 지역의 매일 날씨는 다음 표에서 보여준 마르코프 체인이다.

a) 첫날은 맑은 날, 다음 날은 흐린 날, 셋째 날은 흐린 날, 넷째 날은 비가 올 확률
b) 위 표에 따라 날씨 시뮬레이터 생성
c) 제작된 시뮬레이터를 사용하여 어느 날 맑음, 구름, 비가 될 확률(안정상태 확률) 찾기
d)c)에서 얻을 확률은 방정식으로 내보냅니다.
e) 안정적으로 분포하는 엔트로피를 구한다
f) 베이스의 법칙을 적용해 오늘의 날씨에서 내일의 날씨 확률을 계산한 표
e) 상기 상태 이동 확률은 여름에만 적용되며, 다른 계절에 다른 상태 이동 확률이 필요할 경우 확률 과정의 마르코프성을 파괴할 수 있습니까?
답안.

다음은 각각 $S 이벤트를 문자로 나타냅니다.
$S_{TdySny}달러: 오늘은 맑은 날씨
$S_{TdyCdy}달러: 오늘 흐린 날씨
$S_{TdyRny}달러: 오늘 비가 와요.
$S_내일은 맑아요.
$S_내일은 흐려요.
$S_내일 비가 온다
$S_{Ydysny} 달러: 어제는 맑았습니다.
$S_{YdyCdy}달러: 어제는 흐린 날이었어요.
$S_{YdyRny}달러: 어제 비가 왔어요.
또한 $p(S)는 이벤트가 발생할 확률을 나타냅니다.
$p(S 0, S 1)$이벤트$S0달러 및 이벤트$S1달러 발생 확률(동일 확률), $p(S 1|S 0)$는 이벤트 $S0달러 이벤트 $S1달러 발생 확률.
a) 첫날은 맑은 날, 다음 날은 흐린 날, 셋째 날은 흐린 날, 넷째 날은 비가 올 확률
단순한 동차 확률일 뿐이다.
오늘은 맑은 날, 내일은 흐린 날의 확률 x 오늘은 흐린 날, 내일은 흐린 날의 확률 x 오늘은 흐린 날, 내일은 비가 올 확률.
\begin{align}
p&(S_{TrwCdy}|S_{TdySny}) \cdot p(S_{TrwCdy}|S_{TdyCdy}) \cdot p(S_{TrwRny}|S_{TdyCdy}) \\
&= 0.2 \cdot 0.4 \cdot 0.2\\
&= \frac{2}{125} = 0.016
\end{align}
b) 위 표에 따라 날씨 시뮬레이터 생성
2_2.py
#!/usr/local/bin/python
import random
import collections

(
  Sunny,
  Cloudy,
  Rainy,
) = range(0, 3)

Weather = ["Sunny", "Cloudy", "Rainy"]

def genWeather(today):
  tomorrow = 0
  rnd = random.random()
  if today == Sunny:
    if rnd < 0.8:
      tomorrow = Sunny
    else:
      tomorrow = Cloudy
  elif today == Cloudy:
    if rnd < 0.4:
      tomorrow = Sunny
    elif rnd < 0.8:
      tomorrow = Cloudy
    else:
      tomorrow = Rainy
  else: # today == Rainy
    if rnd < 0.2:
      tomorrow = Sunny
    elif rnd < 0.8:
      tomorrow = Cloudy
    else:
      tomorrow = Rainy
  return tomorrow

if __name__ == '__main__':
  aryWeather = []

  today = Sunny
  for i in range(0, 100000):
    tomorrow = genWeather(today)
    aryWeather.append(tomorrow)
    today = tomorrow

  cnt = collections.Counter(aryWeather)
  for k, v in cnt.items():
    print Weather[k], v, v/100000.
c) 제작된 시뮬레이터를 사용하여 어느 날 맑음, 구름, 비가 될 확률(안정상태 확률) 찾기
b)에 생성된 에뮬레이터의 출력 예
output
Sunny 644205 0.644205
Cloudy 284507 0.284507
Rainy 71288 0.071288
따라서 맑은 날 확률은 64.4[\%]달러, 흐린 날 확률은 28.5[\%]달러, 비 오는 날 확률은 7.1[\%]달러입니다.
d)c)에서 얻을 확률은 방정식으로 내보냅니다.
마르코프 사슬의 안정적인 분포 문제.
원하는 안정적 분포(시간은 확률 과정을 거쳐도 분포는 변하지 않는 경우)를 $\boldsymbol{\alpha}=(\alpha{S{Sny},\alpha{S{Rny})로 설정하면 다음과 같은 연립 방정식을 세울 수 있다.
\left\{
\begin{array}{l}
\begin{align}
\alpha_{S_{Sny}} &= 0.8 \alpha_{S_{Sny}} + 0.4 \alpha_{S_{Cdy}} + 0.2 \alpha_{S_{Rny}}\\
\alpha_{S_{Cdy}} &= 0.2 \alpha_{S_{Sny}} + 0.4  \alpha_{S_{Cdy}} + 0.6 \alpha_{S_{Rny}}\\
\alpha_{S_{Rny}} &= 0.0 \alpha_{S_{Sny}} + 0.2  \alpha_{S_{Cdy}} + 0.2 \alpha_{S_{Rny}}\\
1 &= \alpha_{S_{Sny}} + \alpha_{S_{Cdy}} + \alpha_{S_{Rny}}
\end{align}
\end{array}
\right.
이 연합 방정식을 풀면{S_{Sny}} =\frac{9}{14}$,$\alpha_{S_{Cdy}} =\frac{2}{7}$,$\alpha_{S{Rny} 획득 =\rac{1} {14} 달러.
따라서 날씨별 안정 상태 확률은 $p(S{Sny})=\rac{9}{14}\\allingdotseq64.3[\%]$, $p(S{Cdy})=\rac{2}\allingdotseq28.6[\%], $p(S{Rny})=\rac{1}{14}\allingdotseq7.14[\%]달러입니다.
참조: 동경농공대학 정보공학과 호리타 연구실 정보이론 제4회 확률 과정
e) 안정적으로 분포하는 엔트로피를 구한다
1개의 이벤트 계(완전 이벤트 계)의 엔트로피는 다음과 같은 공식으로 계산된다.
$$H = -\sum_{k=1}^{n} p_k\log_2 p_k$$
맑음, 구름, 비 세 가지 현상,
$$H = -(p(S_{Sny})\log_2 p(S_{Sny}) + p(S_{Cdy})\log_2 p(S_{Cdy}) + p(S_{Rny})\log_2 p(S_{Rny}))$$
d) 획득한 안정 확률,
$$H = -(\frac{9}{14}\log_2\frac{9}{14} +\frac{2}{7}\log_2\frac{2}{7} +\frac{1}{14}\log_2\frac{1}{14})\fallingdotseq 1.2[bit]$$
참조: 동경농공대학 정보공학과 호리타 연구실 정보이론 제5회 정보량과 엔트로피
f) 베이스의 법칙을 적용해 오늘의 날씨에서 내일의 날씨 확률을 계산한 표
우선 오늘이 맑은 날인 상황에서 어제가 맑은 날일 확률을 구한다.
$$p(YdySny|TdySny) =\frac{p(TdySny|YdySny)\cdot p(YdySny)}{p(TdySny)}$$
상술한 공식은 베이스의 정리에서 유래한 것으로 어제의 확률은 안정적인 확률에 대입되었다.
\begin{align}
p(YdySny|TdySny) &= \frac{p(TdySny|YdySny) \cdot p(YdySny)}{p(TdySny)}\\
&= \frac{p(TdySny|YdySny) \cdot p(Sny)}{p(TdySny|YdySny)p(Sny) + p(TdySny|YdyCdy)p(Cdy) + p(TdySny|YdyRny)p(Rny)}\\
&= \frac{\frac{8}{10} \cdot \frac{9}{14}}{\frac{8}{10} \cdot \frac{9}{14} + \frac{4}{10} \cdot \frac{2}{7} + \frac{2}{10} \cdot \frac{1}{14}} \\
&= \frac{4}{5} = 0.800
\end{align}
그 다음으로 만약 오늘이 맑다면 어제가 흐린 날일 확률을 계산해야 한다.
\begin{align}
p(YdyCdy|TdySny) &= \frac{p(TdySny|YdyCdy) \cdot p(YdyCdy)}{p(TdySny)}\\
&= \frac{p(TdySny|YdyCdy) \cdot p(Cdy)}{p(TdySny)}\\
&= \frac{\frac{4}{10} \cdot \frac{4}{14}}{\frac{90}{140}} \\
&= \frac{8}{45} \fallingdotseq 0.178
\end{align}
그 다음으로 만약 오늘이 맑은 날이라면 어제 비가 올 확률을 계산해야 한다.
\begin{align}
p(YdyRny|TdySny) &= \frac{p(TdySny|YdyRny) \cdot p(YdyRny)}{p(TdySny)}\\
&= \frac{p(TdySny|YdyRny) \cdot p(Rny)}{p(TdySny)}\\
&= \frac{\frac{2}{10} \cdot \frac{1}{14}}{\frac{90}{140}} \\
&= \frac{1}{45} \fallingdotseq 0.0222
\end{align}
다음은 오늘 흐린 날씨와 비가 올 때 어제 날씨의 확률을 똑같이 계산한다.
\begin{align}
p(YdySny|TdyCdy) &= \frac{p(TdyCdy|YdySny) \cdot p(YdySny)}{p(TdyCdy)}\\
&= \frac{p(TdyCdy|YdySny) \cdot p(Sny)}{p(TdyCdy|YdySny)p(Sny) + p(TdyCdy|YdyCdy)p(Cdy) + p(TdyCdy|YdyRny)p(Rny)}\\
&= \frac{\frac{2}{10} \cdot \frac{9}{14}}{\frac{2}{10} \cdot \frac{9}{14} + \frac{4}{10} \cdot \frac{2}{7} + \frac{6}{10} \cdot \frac{1}{14}} \\
&= \frac{9}{20} = 0.450
\end{align}
\begin{align}
p(YdyCdy|TdyCdy) &= \frac{p(TdyCdy|YdyCdy) \cdot p(YdyCdy)}{p(TdyCdy)}\\
&= \frac{p(TdyCdy|YdyCdy) \cdot p(Cdy)}{p(TdyCdy)}\\
&= \frac{2}{5} = 0.400
\end{align}
\begin{align}
p(YdyRny|TdyCdy) &= \frac{p(TdyCdy|YdyRny) \cdot p(YdyRny)}{p(TdyCdy)}\\
&= \frac{p(TdyCdy|YdyRny) \cdot p(Rny)}{p(TdyCdy)}\\
&= \frac{3}{20} = 0.150
\end{align}
\begin{align}
p(YdySny|TdyRny) &= \frac{p(TdyRny|YdySny) \cdot p(YdySny)}{p(TdyRny)}\\
&= \frac{p(TdyRny|YdySny) \cdot p(Sny)}{p(TdyRny|YdySny)p(Sny) + p(TdyRny|YdyCdy)p(Cdy) + p(TdyRny|YdyRny)p(Rny)}\\
&= \frac{\frac{0}{10} \cdot \frac{9}{14}}{\frac{0}{10} \cdot \frac{9}{14} + \frac{2}{10} \cdot \frac{2}{7} + \frac{2}{10} \cdot \frac{1}{14}} \\
&= \frac{0}{10} = 0.000
\end{align}
\begin{align}
p(YdyCdy|TdyRny) &= \frac{p(TdyRny|YdyCdy) \cdot p(YdyCdy)}{p(TdyRny)}\\
&= \frac{p(TdyRny|YdyCdy) \cdot p(Cdy)}{p(TdyRny)}\\
&= \frac{4}{5} = 0.800
\end{align}
\begin{align}
p(YdyRny|TdyRny) &= \frac{p(TdyRny|YdyRny) \cdot p(YdyRny)}{p(TdyRny)}\\
&= \frac{p(TdyRny|YdyRny) \cdot p(Rny)}{p(TdyRny)}\\
&= \frac{1}{5} = 0.200
\end{align}
위에서 말한 바와 같이,

e) 상기 상태 이동 확률은 여름에만 적용되며, 다른 계절에 다른 상태 이동 확률이 필요할 경우 확률 과정의 마르코프성을 파괴할 수 있습니까?
확률 과정이 마르코프성을 가지는 이유는'어느 순간 $t의 사건이 발생할 확률은 이전의 사건에만 의존하기 때문'이기 때문이다. 따라서 다른 계절에 다른 상태 이동 확률이 발생하더라도 상태 전환이 어제의 날씨에 달려 있기 때문에 이런 날씨는 마르코프성을 지닌다고 할 수 있다.

좋은 웹페이지 즐겨찾기