我在用python实现mdp (马尔可夫决策过程)时遇到了问题。
我有这些矩阵:states: (1 x n)和actions: (1 x m) .Transition矩阵是通过这个代码计算的:
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 package“定义如下:
ddp = quantecon.markov.DiscreteDP(R, Q, beta)其中Q:转换矩阵应为m x n x m。
有没有人能帮我理解Q是怎么变成a (m,n,m) matirx的?!提前谢谢你。
发布于 2019-01-16 21:54:07
如果您有n状态和m操作,Q将是一个形状(n, m, n) (而不是(m, n, m))数组,您可以让Q[s, a, t]存储当当前状态为t-th状态且所采取的操作为s-th操作时,下一个周期中的状态变为a-th状态的概率。
https://stackoverflow.com/questions/53991143
复制相似问题