algorithm - Alpha Beta 搜索和换位表

标签 algorithm search tree

我的 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/

相关文章:

python - 如何对元组列表执行搜索

java - TreeCellRenderer 的设计

python - 获取python代码的解析树

php - 自然语言处理的正则表达式 "does not contain"模式问题

algorithm - 给定一个数字 X,估计该数字可能落在素数有序列表中的哪个位置

java - 神经网络应该学习多少个 epoch? (包括测试结果)

Javascript - 将数组搜索中的第一个值与其他数组中的值匹配

javascript - 如何将平面数组转换为具有特定最大深度的树?

java - Eclipse 生成的 equals 使用 1231 和 1237 的 boolean 值有什么特别的原因吗?

c# - 访问 N(未知)维矩阵中所有点的算法