alpha beta搜索迭代加深反驳表
我已经实现了一个迭代加深的alpha测试搜索,并且我已经阅读了几种技术,通过搜索先前深度搜索出现的最佳移动来进一步优化算法。
据我了解,我可以只存储动态长度列表中上一次深度搜索的主要变化吗? 例如,假设我已搜索到深度为4的PV:[1,0,2,3]表示在深度1处选择移动数字1,在深度2处选择移动数字0,在深度3处选择移动数字2等...,然后进行深度5搜索,该算法将首先从该先前深度PV搜索节点的孩子。
你称之为驳斥表吗?
从这个链接反驳表的描述:对于每次迭代,搜索产生从根到叶节点的每个移动的路径,其导致正确的极小极大分数或其值的上限。 d - 1层搜索的路径可以用作搜索的基础。 通常,搜索先前迭代的路径或反驳移动作为当前迭代检查的初始路径将证明足以反驳更深一层的移动。
如果它不一样,你能解释反驳表究竟是什么(因为对我来说,两者似乎都是平等的,但我不确定),使用反驳表的优势是什么,而不是我首先提到的方式?
根据链接提供的描述,我假设反驳表或多或少地将三角形PV表的概念扩展到所有根移动。 换句话说,不仅最好的根移动,而且所有的根移动都与三角形PV-Table相关联。
不过,我可能会误解,因为我以前从未使用过或甚至听说过这种技术。 在今天的世界里,分配一个足够大的换位表没什么问题,与转位表,杀手移动和历史表的标准技术相比,我看不到任何反驳表的优点(尽管许多引擎不再使用后者)。
我的建议:如果你还没有实施换位表和杀手动作,我强烈建议从那里开始改进移动排序。
链接地址: http://www.djcxy.com/p/84685.html