我正在编写棋盘游戏。我使用alpha-beta修剪生成了一个游戏树,并有两个选项:
哪种方法更好,会使搜索更深入?我知道,例如,一开始我可以生成一个深度为X的树,消耗所有可用的时间......迭代加深可以增加更多的深度吗?
让我知道我是否可以更清楚......
答案 0 :(得分:1)
如果您的分支因子和评估函数的所需时间在不同轮次之间保持大致相同,您可以使用选项2.但听起来可能非常困难。
如果您没有完美的移动排序,则选项1能够显着提高alpha-beta的性能。您可以保存每个节点的最佳移动,在上一次搜索期间找到d-1,然后告诉alpha-beta先搜索。它被称为转置表,如果可以在您的情况下实现这一点,则选项1将主导选项2。
我第一次听说换位表时我认为它不会产生太大影响,但它将我的最大搜索深度提高了50%。