我正在为纸牌游戏编写人工智能,经过一些测试后,我发现在我的alpha测试版算法中使用MTD(f) - 一系列零窗口搜索 - 比单独使用alpha-beta更快。如何使用转置表与MTD(f)
的MTD(F)算法以及这里http://people.csail.mit.edu/plaat/mtdf.html
我的问题是,在MTD(F)搜索每遍(每猜测),我不重用任何先前位置的描述我已经存储了,即使写在链接上表明我应该(实际上在迭代之间清除表格加速了算法)。
我的问题是,当我在换位表中存储一个位置和一个值时,我还存储了它的有效alpha和beta值。因此,用不同的猜测(因此alpha和beta)通过树的第二遍不可能重用任何信息。这是预期的还是我缺少一些基本的东西?
例如,如果对于alpha = 3 beta = 4,我们应该得到7的结果(显然是截断值),我应该在表中存储它作为α= 3到β= 6有效吗?或者beta = 7?
谢谢,这正是我一直在寻找的东西,并在我的理解中插入了一些漏洞。 – Daniel 2010-07-29 22:24:43
我认为它也需要以某种方式证明它不会使alpha/beta的假设无效以使用来自更深搜索的tt值。至少如果你想要全力。 – 2014-03-05 10:37:37