同时使用minimax和AB修剪搜索游戏树。 那可能吗?

我将在我的学校参加一场棋盘游戏AI竞赛,并试图提出一些想要获得优势的并发思想。 我很可能会处于劣势,因为我将在java中实现它,并且我明白c或c ++会更快。

看起来你不可能把游戏树分成两半,因为移动顺序应该使得最好的移动首先出现,而且看起来很难或者甚至不可能在给定的深度传达当前的alpha / beta 。 我将要使用换位表以及需要同步的换位表。

除了搜索,是否有第二个线程可以做的事情可以帮助搜索或提供某种类型的速度增加。 每个AI都会有5秒的时间进行移动,而你的程序可以在对手想要的时候开始工作。

任何输入,不管多么模糊,将不胜感激。


国际象棋程序设计维基的并行搜索文章中可以找到一个概述。 即使你的实际游戏不是国际象棋,许多概念也适用。 该网站还涵盖了共享转换表的复杂解决方案。

但是,当你没有太多时间时,我不会从平行搜索开始。 并行可以增加搜索算法的优势是正确的。 然而,要做到这一点非常困难,而且效益低于预期。

如果你想试验并行性,请继续。 这是一个有趣的话题。 但是,如果您只想在有限的时间内获得最佳结果,我会建议您继续进行顺序搜索,然后重点关注移动排序和正确性。


有可能的。 您必须在线程之间进行通信才能获得AB的帮助。 另外,移动顺序必须调整,如果一个线程有最好的分析动作来分析,而其他线程则不会。

链接地址: http://www.djcxy.com/p/56323.html

上一篇: Concurrently search a game tree using minimax and AB pruning. Is that possible?

下一篇: Unexpected path dependence in alpha