我已经实现了Alpha Beta搜索,想要使用置换表来提高效率。问题在于表中的条目和当前正在评估的位置之间的关系。 到目前为止,我阅读的文献都说需要存储位置类型、分数和其他一些信息。为什么必须存储类型?只要来自先前搜索的表中条目往深一层,难道不能只使用分数吗? 这个页面展示了一些示例代码,但我无法理解为什么当alpha>=beta时AB搜索返回beta。难道不应该返回alpha吗?
如果你的哈希函数会产生冲突,那么你可以存储位置。你还需要存储位置深度来确保分数来自于深层搜索。当然,你必须存储分数。至于你的第二个问题......那就是所谓的Beta剪枝。假设你的对手在搜索中已经找到了更好的线路,并将该分数初始化为Beta(传递给你的负alpha作为beta)......在测试走法时,如果你能够在任何时候超过Beta,他就不关心你能以多少分数超过它,并且他只会删除该分支中其余的搜索。最简单的方法就是直接返回beta。