Реализация MDP с использованием Python - размеры
У меня проблема в реализации mdp
(марковский процесс принятия решения) питоном.
У меня есть эти матрицы: states: (1 x n)
а также actions: (1 x m)
Матрица перехода рассчитывается по этому коду:
p = np.zeros((n,n))
for t in range(l): # my data is a 1x100 matrix
p[states[t]-1, states[t+1]-1] = p[states[t]-1, states[t+1]-1] + 1
for i in range(n):
p[i,:] = p[i, :] / np.sum(p[i, :])
и вознаграждение матрицы по этому коду:
for i in range(l):
Reward = (states[i+1]-states[i])/(states[i])*100
Чтобы иметь оптимальное значение, "пакет quantecon" в python определяется следующим образом:
ddp = quantecon.markov.DiscreteDP(R, Q, beta)
где Q: матрица перехода должна быть m x n x m
,
Может кто-нибудь помочь мне понять, как Q может быть (m,n,m) matirx?! Заранее спасибо.
1 ответ
Если у вас есть n
состояния и m
действия, Q
будет массив формы (n, m, n)
(не (m, n, m)
), где вы позволяете Q[s, a, t]
хранить вероятность того, что состояние в следующем периоде становится t
-я состояние, когда текущее состояние является s
-ое состояние и предпринятые действия являются a
действие