首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python - dimensions实现MDP

使用python - dimensions实现MDP
EN

Stack Overflow用户
提问于 2019-01-01 04:21:17
回答 1查看 247关注 0票数 0

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

我有这些矩阵:states: (1 x n)actions: (1 x m) .Transition矩阵是通过这个代码计算的:

代码语言:javascript
复制
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, :])    

和奖励矩阵的代码:

代码语言:javascript
复制
for i in range(l): 
Reward = (states[i+1]-states[i])/(states[i])*100

为了获得最佳值,python中的"quantecon package“定义如下:

代码语言:javascript
复制
ddp = quantecon.markov.DiscreteDP(R, Q, beta)

其中Q:转换矩阵应为m x n x m

有没有人能帮我理解Q是怎么变成a (m,n,m) matirx的?!提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 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状态的概率。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53991143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档