我正在为某个棋盘游戏创建基于 RL 的 AI。就像对游戏的一般概述,以便您了解它的全部内容:这是一款独立的回合制游戏,具有棋盘大小(视玩家人数而定)。每个玩家获得一个棋子的数量,玩家必须放在棋盘上。最后,棋子数最少的一方获胜。当然,关于如何放置棋子有一些规则,因此并非所有放置在每一步都是合法的。
我让游戏在 OpenAI 的健身房环境中运行(即按step
功能控制),将棋盘表示作为观察,并定义了奖励函数。
我现在正在努力的事情是有意义地代表动作空间。
我研究了 AlphaZero 如何处理国际象棋。那里的行动空间:对于板上的每个可能的瓷砖,有 73 种与运动相关的模式。因此,对于每一步,算法都会产生 4672 个值,非法值设置为零,非零值重新归一化。
现在,我不确定这种方法是否适用于我的用例,因为我的计算表明我的理论上限约为 30k 可能的操作() 如果使用相同的计算方式。我不确定这是否仍然有效,尤其是考虑到我手头没有 DeepMind 计算资源。
因此,我的问题是:除了从所有理论上可能的法律行为中选择法律行为之外,还有其他方法吗?
法律诉讼只是大约 30k 可能诉讼的一小部分。然而,在每一步,法律行动都会改变,因为每一个新棋子都决定了新的放置可能性(而且,已经放置的棋子不再可用,即每一步动作空间通常会变小)。
我正在考虑像星际争霸 2 这样的游戏,其中动作空间必须更大,并且它们展示了良好的结果,不仅是 DeepMind,而且还有私人爱好者(例如 DQN)。
我将不胜感激任何想法,提示或阅读!