解释
着法排序会改变国际象棋引擎检查合法选择的先后次序,引擎是一种分析局面的程序。它不会仅因某一步预先看起来较弱就将其删除,而是尝试把最可能强劲、能迅速反驳某条路线或能提供有用信息的候选着排在前面。
顺序很重要,因为许多搜索使用阿尔法-贝塔剪枝,这种方法会在证明某分支无法改进当前决定后停止检查。若优秀着法较早出现,就能建立严格的参考值,许多较差应对只需少量工作便可排除。若同一步排在最后,引擎可能已经把时间花在后来证明无关的分支上。
常见排序信号
- 较早搜索得到的最佳路线,在期间尤其有用。
- 引擎识别到同一局面已经搜索过时找到的已保存着法。
- 看起来有利的吃子,有时会先用快速的子力交换估计进行筛选。
- 安静着,也就是不立即吃子或将军、且根据内部历史记录曾在类似局面中造成截断的着法。
在完整的定深搜索中,不同顺序应导向同一最终结果。可能发生巨大变化的是达到该结果所需的工作量。等技术更加依赖尽早找到优秀候选着。
常见混淆
排序不等于完整评估
着法排序用快速信号设定优先级,之后的搜索仍须验证这步棋是否真正成立。
来源
- 1.Move Ordering, Chess Programming Wiki
