微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 OpenAI 健身房 Box Space 转换为离散

如何解决如何将 OpenAI 健身房 Box Space 转换为离散

要使用 Q-learning,我需要创建一个大小为 [nº of actions][nº of states] 的二维 NumPy 数组。

  • 我的操作是一个可以轻松转换为整数的方向列表。
  • 我的状态是一个盒子:gym.spaces.Box(low=np.int8(0),high=np.int8(2),shape=(5,5),dtype=np.int8)

我需要找到一种方法获取我的状态并将其转换为整数,以便能够创建 Q 表。我知道 wrappers,但不知道如何使用它们以及应该使用哪个。


上一节是一个快速总结,这里更详细地说明问题:

我正在为游戏 Neutreeko 创建 OpenAi 健身房环境。状态是 8 个方向,环境是 Box(或 NumPy 数组)。游戏的创造者声明:

有 3,450,516 个有效的棋盘位置。 source

所以我需要找到一种方法将每个板映射到一个 ID 以用作 Q 表的索引。 我向创作者询问了他如何获得这个号码的一些帮助,他回答:

我不完全确定我是如何到达 3,515(这可以追溯到大约 19 年前)。我可能假设下一个玩家 (N) 还没有连续三​​个,这给了他们 C(25,3) - 48 = 2252 个可能的位置,其中 C(n,k) 表示二项式系数(n 大于 k)。上一个玩家 (P) 应该有 C(25 - 3,3) = 1540 个可能的位置,总共 2252 x 1540 = 3,468,080 个位置。很可能我已经减去了不可能到达的位置,因为没有前一个玩家可以合法移动并到达当前位置的位置。

以 5 个可用位置和 3 个零件的简单示例为例,这些零件有 10 种可能的配置,但我找不到使用可用信息(分配的零件索引)将每个配置转换为 id 的方法。试试看:

Attempt to find Ids

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。