我的 alpha beta 搜索正在运行,我想实现换位表以使其更快。我遇到的问题是表中的条目与正在评估的当前位置之间的关系。
到目前为止,我读过的文献表明您需要存储位置类型、分数和一些其他信息。为什么必须存储类型?只要以前搜索的表格中的条目更深入,就不能只使用分数吗?
This page显示了一些示例代码来执行此操作,但我无法弄清楚为什么 AB 搜索在 alpha>=beta 时返回 beta。你不应该返回 alpha 吗?
最佳答案
如果您的散列函数会产生冲突,您可能会存储位置。正如您所注意到的,您还需要存储位置深度,以确保分数来自更深层次的搜索。当然,您必须存储分数。
关于您的第二个问题……这就是所谓的 Beta 截止值。前提是你的对手已经在搜索的早期为自己找到了一条更好的路线并将该分数初始化为 Beta(负 alpha,为你传递了 beta)......在测试你的 Action 时,如果你可以在任何时候击败 Beta,他不在乎你能击败它多少,他只会剔除该分支中的其余搜索。最简单的方法就是返回测试版。
关于algorithm - Alpha Beta 搜索和换位表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1850034/