使用python的MDP实现-尺寸

时间:2018-12-31 20:21:17

标签: python transition reward 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

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

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

其中Q:过渡矩阵应为m x n x m

任何人都可以帮助我理解Q如何成为(m,n,m)母体吗? 预先谢谢你。

1 个答案:

答案 0 :(得分:0)

如果您有n个状态和m个动作,则Q将是形状为(n, m, n)(而不是(m, n, m))的数组,其中让{{ 1}}存储当当前状态为第Q[s, a, t]个并且所采取的动作为第t个时下一个状态变为第s个状态的概率行动。