Реализация 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действие

Другие вопросы по тегам