Реализация MDP с использованием Python - размеры - PullRequest
0 голосов
/ 31 декабря 2018

У меня проблема с реализацией mdp (процесс принятия решения по Маркову) с помощью Python.

У меня есть эти матрицы: 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 Ответ

0 голосов
/ 16 января 2019

Если у вас есть n состояния и m действия, Q будет массивом формы (n, m, n) (не (m, n, m)), где вы позволите Q[s, a, t] сохранить вероятность того, что состояние в следующемпериод становится t -ым состоянием, когда текущее состояние является s -ым состоянием, а выполненное действие является a -ым действием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...