分布式alpha beta修剪


19

我正在寻找一种有效的算法,该算法可让我在分布式体系结构上使用alpha-beta修剪来处理国际象棋的minimax搜索树。我发现的算法(PVS,YBWC,DTS见下文)都已经很老了(1990年是最新的)。我认为自那时以来已经有了许多实质性的进步。目前该领域的标准是什么?

另外,请指出白痴对DTS的解释,因为我从阅读的研究论文中无法理解它。

上面提到的算法:

  • PVS:原则变化分裂
  • YBWC:青年兄弟等待概念
  • DTS:动态树拆分

全部都在这里讨论。



2
好吧,这是一个问题(并行化maxmax搜索或其任何变体)特别困难。在理查德·科夫(Richard Korf)今年发表的题为“组合搜索中的研究挑战”的论文中,可以读到以下内容:“众所周知,带有alpha-beta修剪的minimax搜索很难并行化”我确实对此表示怀疑有一种算法可以使其始终有效...
卡洛斯·利纳雷斯·洛佩斯

因此,考虑到我只是一个非常不起眼的第四学期计算机科学专业的本科生,我应该选择序列化算法还是应该尝试期待一些可接受的亚线性加速?
wirate

很抱歉延迟回复,此消息在收件箱中完全没有被注意。事实上,我希望最终节省的资金完全取决于您的评估功能分配给搜索树叶子的分数的分布。通常,不能保证分布式搜索算法的性能将明显优于序列化的alpha-beta搜索算法。因此,我肯定会去尝试它的序列化版本,尝试尽可能多的增强(排序移动,换位表等)
Carlos LinaresLópez,2012年

我在并行alpha-beta方面取得了一些成功(基本上如您所链接的Wiki页上所述)。
杰里米·

Answers:


3

是的,由于国际象棋分析文献和一般的并行编程技术,该理论已经有了很大的进步。这是有关分布式集群/并行性上的(chs)alpha beta修剪的一些新参考。同样,一些早期的分布式计算象棋文献也早于许多基本的并行设计模式,并且可以在该框架内进行概念化。

DTS背后的基本思想是,搜索树根据移动/布局的复杂性分布在计算节点之间。未使用的“提前完成”的处理器可以完成除初始分配之外的其他工作,该初始分配可以在最初尽可能均匀地分配,但结果会不均衡。因此,它基本上是一种“负载平衡”和“生产者/消费者”队列,或者类似于作业调度。

该空闲处理器广播(使用共享内存)它空闲,并且可用于“帮助”任何其他处理器完成搜索其树。繁忙的处理器收集“树的状态”数据,并将其存储在共享内存中,以供空闲处理器检查。该空闲处理器分析该数据,并确定哪些繁忙处理器(如果有)似乎具有足够复杂的树,从而可以有效地帮助搜索。如果找到了这样的位置,则空闲处理器将此情况通知拥有该节点的处理器,并且它们“加入”力。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.