我们可以在具有高分支因子的游戏(例如 Connect6)上使用哪些算法?

人工智能 游戏-ai 蒙特卡罗树搜索 算法请求 组合游戏 分支因子
2021-10-22 09:49:02

Connect6是具有非常高分支因子的游戏示例。它大约是 45,000,即使是令人印象深刻的围棋也相形见绌。

我们可以在具有如此高分支因子的游戏中使用哪些算法?

我尝试了 MCTS(软推出,将一层算作放置一块石头),但由于分支因子高,它甚至无法阻挡对手。

就 Connect6 而言,那里有更强大的 AI,但在我所知道的任何研究论文中都没有描述它们。

1个回答

通常,蒙特卡洛树搜索 (MCTS) 实际上是此类具有大分支因子的问题的首选“解决方案”。我可以理解,“普通”MCTS 的性能可能仍然不能令人满意,但有大量可用的扩展/增强功能。

我对你提到的特定游戏(Connect6)没有经验,但是快速浏览一下游戏的工作原理,我想在搜索树中会有大量的换位(位置相同但可以通过搜索树中的多个不同路径到达)。如果您将一块石头视为单层,这将特别常见;每个“组合移动”(随后将两块石头放在两个位置)都可以通过两种不同的方式达到,只需改变玩家放置它们的顺序即可。已经有研究将转置表与 MCTS 结合使用,因此这可能是一个很有前途的研究方向。

我还怀疑使用深度(强化)学习方法会有很大的价值。如果有一块大棋盘可以放置棋子,则可能会有许多“荒谬”的动作,并且很容易被深度学习方法完全忽略(例如,将棋子放置在棋盘很远的角落,没有棋子的地方) “行动”正在进行)。没有深度学习扩展的 Vanilla MCTS 将无法识别和消除这些荒谬的动作,并且过于频繁地播放它们(由于高分支因子,在 Play-Out 和选择阶段)。这里最明显的灵感来源是 AlphaGo Zero。

最后,肯定有一些关于 Connect6 AI(甚至是 Connect6 中的 MCTS)的已发表研究。例如:Connect6 的两阶段蒙特卡罗树搜索您可能还可以通过查看该论文的参考文献列表来找到更多相关研究,并查看引用该论文的谷歌学者的后续论文