我正在尝试创建一个简单的2D网格世界Openai Gym环境,代理从网格世界的任何地方前往终端小区。例如,在5x5网格世界中,X是当前代理位置,O是代理要去的终端小区。
.....
.....
..X..
.....
....O
我的动作空间被定义为离散值[0,4(,分别表示上、左、下和右。观察空间是一个1D框,表示代理在网格世界中的当前位置,例如[12](索引从0开始到size*size-1(。我想知道定义观察空间的方法之间有什么区别。例如,除了我目前的定义之外,同一环境的观测空间可以定义如下,仅举几个例子。
- i的离散值,其中i表示代理的当前位置
- 除了代理当前位置为1之外,其余均为零的2d矩阵
- 也许其他人在稳定基线算法或其他方面有什么不同
定义观测空间的方法之间有什么区别
我认为更好的问题是:
定义观测空间的方法之间存在差异的原因是什么
为了定义观测空间,需要确定两件事:
-
算法需要什么信息?
这在很大程度上取决于你能收集到什么信息和特工的目标,例如,如果你想让特工在迷宫中到达目标,那么你可以提供特工的当前位置、特工周围的障碍物方向、目标方向等信息。
-
输入信息应该是什么形式?这在很大程度上取决于你使用的信息和代理解决方案(即算法本身(,有时你有多种选择,你需要进行实验来找出哪种算法最适合给定的算法,就像你列出的少数算法一样。
因此,通常情况下,定义观测空间的不同方式是为了更好地适应不同的目标和算法。