0

我在mdp用python实现(马尔科夫决策过程)时遇到问题。

我有这些矩阵:states: (1 x n).Transitionactions: (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

为了获得最佳值,python中的“quantecon包”定义为:

ddp = quantecon.markov.DiscreteDP(R, Q, beta)

其中 Q : 转移矩阵应该是m x n x m

谁能帮我理解 Q 如何成为 (m,n,m) matirx?!先感谢您。

4

1 回答 1

0

如果你有n状态和m动作,Q将是一个形状数组(n, m, n)(不是(m, n, m)),Q[s, a, t]t当前状态是s第 - 状态并且采取的动作是a-th 动作。

于 2019-01-16T13:54:06.783 回答