2009-12-04 31 views
3

我有alpha beta搜索工作,并希望实现转置表使其更快。我遇到的问题是表格中的条目与正在评估的当前位置之间的关系。Alpha Beta搜索和转置表

迄今为止我读过的文献说,你需要存储位置类型,分数和其他一些信息。为什么你必须存储该类型?只要前一次搜索的表格中的条目变得更深,您不能只使用分数吗?

This page显示了一些示例代码来做到这一点,但我不明白为什么AB搜索在alpha> = beta时返回beta。你不应该返回阿尔法?

回答

3

如果您的散列函数可能产生冲突,您可能会存储该位置。正如你注意到的那样,你还需要存储位置深度,以确保分数来自更深入的搜索。当然,你必须存储分数。

至于你的第二个问题......那被称为Beta截止。前提是你的对手早已在搜索中找到了一条更好的线路,并将该分数初始化为Beta(负Alpha,作为beta通过)......当测试你的移动时,如果你可以在任何时候击败Beta,他并不在意你能击败多少,他只会挑选该分支的其余搜索。最简单的方法就是返回测试版。