Markov Property
미래의 사건은 현재의 상태만으로 예측 가능하다.
시간에 따른 확률적 상태 전이를 나타내는 수학적 모델이다. 다음과 같이 수식으로 나타낼 수 있다.

은 미래이고 는 현재를 나타낸다.
Python Example
import numpy as np
import copy
def mp(p, day):
p2 =copy.deepcopy(p)
if day<1:
print("error")
return 0
elif day==1:
return p
else:
for i in range(day):
p2 = np.matmul(p, p2)
return p2
# main
p= [[0.25, 0.75], [0.4, 0.6]]
mp(p, 3)
Markov Reward Process
MP에 reward R과 discount factor 𝛾을 더한 수학적 모델


Episode
Return (누적합)

Reward Python Example
import numpy as np
#reward matrix
R =[[0, 2, 0, 0, 1, 0],
[0, 0, -2, 0, 1, 0],
[0, 0, 0,100, 2, 5],
[0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, -3, 0],
[1, 0, 0, 0, 0,-10]]
# episode generator
episode =[]
episode.append(0)
done =True
inx=0
while(done):
state = rnd_state(episode[inx])
episode.append(state)
inx=inx+1
# print(state)
if state==3:
done=False
print(episode)
#state selector
def rnd_state(n):
epi =0
if n==0:
epi =np.random.choice([1,4], size=1)[0]
elif n==1:
epi =np.random.choice([2,4], size=1)[0]
elif n==2:
epi =np.random.choice([3,4,5], size=1)[0]
elif n==4:
epi =np.random.choice([1,4], size=1)[0]
elif n==5:
epi =np.random.choice([0,5], size=1)[0]
else:
epi =3
print("error")
return epi
#Calculate Return G
G =0
gamma =0.5
for i in range(1,len(episode)):
G =G +(gamma**(i-1) *R[int(episode[i-1])][int(episode[i])])
print(f'ReturnG: {G}')
Markov Decision Process
MRP에 에이전트의 액션 A가 추가된 모델이다. MP나 MRP 모델의 상태 전이는 시간별 상태 전이 확률에 의해 자동으로 수행된다.


A는 action의 집합으로 예를 들면 A={Go, Back, Jump, Attack, ...}으로 나타낼 수 있다.

위의 그림과 같이 에서 로 갈 때 모든 액션들을 통합하여 policy 라고 한다.
Deterministic Environment
episode가 정해져 있는 환경으로 무작위성이 없고 상황 S에서 S'로의 확률이 1 또는 0이다. 예를 들면, 게임과 같은 상황이다.

Stochastic Environment
무작위성이 포함되어 있으며, 동일한 action에 대해 여러 상태가 발생할 수 있다. 즉, 확실하게 결정이 되지 않은 상태이다. 우리의 일상생활을 예로 들 수 있다.
