首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在设计RL状态时,如何混合网格矩阵和显式值?

在设计RL状态时,如何混合网格矩阵和显式值?
EN

Stack Overflow用户
提问于 2021-12-21 08:40:30
回答 1查看 41关注 0票数 0

我试图在网格世界导航任务中进行多agent强化学习,在这个任务中,多个agent试图在避免与固定障碍的碰撞和相互碰撞的同时,共同达到多个目标。作为一种约束,每个代理只能在有限的范围内看到自己周围的情况。

因此,在较高的层次上,每个代理的状态应该既包含有助于避免冲突的信息,又包含引导其实现目标的信息。我正在考虑通过在代理的状态中包含一个矩阵来实现前者,该矩阵由围绕代理的网格单元组成,它将显示agent的障碍所在。但是,我不知道如何将目标导航信息包含在这个矩阵之上。目前,我只是扁平矩阵和附加所有相关的目标位置在末尾,并使用这一状态。

例如,对于如下所示的网格世界(0表示空单元格,1表示代理,2表示障碍,3表示目标):

代码语言:javascript
复制
[[0 0 0 0 0 0 2 2 0 0]
 [0 0 0 0 0 0 0 0 0 0]
 [0 0 2 2 0 0 0 0 0 0]
 [0 3 2 2 0 0 0 0 0 2]
 [0 0 0 0 0 0 0 0 0 2]
 [0 0 0 0 1 0 0 0 0 2]
 [2 0 0 0 0 2 2 0 3 0]
 [2 0 0 0 0 2 2 0 0 0]
 [0 0 0 0 0 0 0 0 0 0]
 [0 0 2 0 0 1 0 0 0 0]]

row5 col4的代理可以看到它周围的distance1中的以下单元:

代码语言:javascript
复制
[[0. 0. 0.]
 [0. 1. 0.]
 [0. 0. 2.]]

矩阵扁平化后变成:

代码语言:javascript
复制
[0,0,0,0,1,0,0,0,2]

row3 col1的目标相对于上述代理的位置是(5-3=2,4-1=3)。

row6 col8的目标相对于上述代理的位置是(5-6=-1,4-8=-4)。

因此,在附加相对位置后,代理的状态变为:

代码语言:javascript
复制
[0,0,0,0,1,0,0,0,2,2,3,-1,-4]

(另一种药剂的类似过程)

这是一种合理的国家设计方法吗?我主要关心的是,RL可能无法区分平坦矩阵和相对距离之间的区别。如果我的担忧是有根据的,你能就我应该如何设计这个国家提出一些建议吗?

提前感谢!

编辑:为了验证我的担忧,我使用PG增强算法训练了一个代理。就像我担心的那样,经纪人学会了避开障碍,但在其他情况下,他们只是随机地移动,而没有朝着目标前进。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-27 07:10:35

我没有找到改善状态设计的方法,但我确实找到了一个解决办法,使我的PG网络模块。

我简单地把我的PG网络分成两部分--一个是从上述状态中获取扁平网格矩阵部分,另一个是接收相对目标位置。然后,我将两个子网络的输出连在一起,并通过一个softmax层传递它们,以得到最终的策略。

如果您需要更多的详细信息,可以查看我的代码这里 (相关代码在MARL_PolicyGradient.pyMARL_env.pyMARL_networks.py中)。祝好运!

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

https://stackoverflow.com/questions/70432613

复制
相关文章

相似问题

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