2

I've implemented an alpha beta search with iterative deepening and i've read several techniques to further optimize the algorithm by searching for the best move first that came up from previous depth search.

as far as i understand, can i just store the principal variation from the previous depth search in dynamic length list? for example, suppose i have searched until depth 4 with PV : [1, 0, 2, 3] means that at depth 1, choose move number 1, at depth 2 choose move number 0, at depth 3 choose move number 2 , etc..., and then for depth 5 search, the algorithm will first search the child of the node from that previous depth PV.

is that what you call the refutation tables?

description of refutation table from this link : For each iteration, the search yields a path for each move from the root to a leaf node that results in either the correct minimax score or an upper bound on its value. This path from the d - 1 ply search can be used as the basis for the search to d ply. Often, searching the previous iteration’s path or refutation for a move as the initial path examined for the current iteration will prove sufficient to refute the move one ply deeper.

if it's not the same, can you explain what is refutation table really is(because to me, both seems equal, but im not sure) and what is the advantage of using the refutation tables instead of the way i mentioned first?

4

1 回答 1

2

根据您的链接提供的描述,我假设反驳表或多或少地将三角形 PV 表的概念扩展到所有根移动。换句话说,不仅最好的根移动,而且所有的根移动都与三角形 PV 表相关联。

不过,我可能弄错了,因为我以前从未使用过甚至听说过这种技术。在当今世界,分配足够大的转置表是没有问题的,与转置表、杀手招式历史表的标准技术相比,我认为反驳表没有任何优势(尽管许多引擎不再使用后者)。

我的建议:如果您还没有实施换位表和杀手级动作,我强烈建议您从那里开始以改进移动顺序。

于 2013-05-09T13:27:07.857 回答