1

我正在编写棋盘游戏。我使用 alpha-beta 修剪生成了一个游戏树,并有 2 个选项:

  1. 使用迭代深化来优化 alpha-beta,使其不断生成一层,直到时间结束。
  2. 通过反复试验,我知道在时间限制内每个板配置可达到的最大深度,而无需事先检查下层。

哪种方法更好,并且会使搜索达到更深的深度?例如,我知道,一开始我可以生成一棵深度为 X 的树,消耗所有可用的时间......迭代加深可以增加更多深度吗?

让我知道我是否可以更清楚...

4

1 回答 1

1

If your branching factor and evaluation function's required time stays about the same between different rounds you might be able to use option 2. But it sounds like it might be very difficult.

Option 1 has the ability to dramatically increase alpha-beta's performance if you don't have perfect move ordering already. You save the best move at every node, found during the previous search up to d-1, and then tell alpha-beta to search that first. It's called a transposition table, and if it is possible to implement this in your case option 1 will dominate option 2.

The first time I heard of a transposition table I didn't think it could make much of a difference, but it increased my maximum search depth by 50%.

于 2012-08-20T05:37:16.543 回答