【发布时间】:2017-01-19 17:49:04
【问题描述】:
我目前正在使用换位表进行移动排序。使用迭代深化搜索,我存储上一次迭代的极小值,以便为下一次迭代排序移动。这一切都很好。
这是我的困惑:
如果我在我的转置表中找到某个位置,那么我使用之前计算的分数进行移动排序(来自迭代深化的上一次迭代)。但是,如果这个位置的分数被更新(在返回 minimax 之后),并且在另一个子树中再次找到该位置(迭代加深的相同迭代) - 我不想只将它用于移动排序......我应该能够返回该值,因为该值现在已经为这次迭代计算并且是绝对的。
这是我的问题:有两个转置表是标准的吗?一个用于上一次迭代,一个用于迭代深化的当前迭代。所以我会首先检查当前迭代的表,看看是否已经计算了最小值,然后简单地返回这个值。如果它不在此表中,我将使用该表进行上一次迭代,用于移动排序。如果两者都没有,那么这是我在此搜索中从未见过的新位置。
这种思路是正确的,还是有更有效的方法?
【问题讨论】:
-
这个问题将过于宽泛/基于意见。我会说值得尝试使用两个。如果它可以帮助您在更短的时间内获得更多的厚度,那么它就是肉汁。如果没有,那就扔掉它。曾经有一个国际象棋程序员新闻组。也许尝试追踪它并在那里询问。这里不适合这类问题。
-
感谢您的快速回复。
标签: artificial-intelligence chess