解释
评估函数用数值估计一个局面对某一方有多有利。在有限搜索无法到达所有可能对局的真实终点时,会使用这种函数。
这种评估称为静态评估,因为它在该节点直接给局面打分,不会从那里另行启动一次完整搜索。静态并不表示局面在战术上平静。
可能考虑的信息
- 子力,也就是双方各自还保有哪些棋子。
- 王的安全、棋子位置和机动性,也就是棋子能够自由走出有用着法的程度。
- 兵形,也就是兵如何摆放、相互支持或形成弱点,以及其他局面模式。
- 某些引擎中的神经网络,也就是用大量示例训练、用于综合这些信号的数学模型。
正负号和数值尺度需要结合上下文。根据程序不同,正数可能表示白方有利,也可能表示轮到走棋的一方有利。一个类似一兵价值的单位,也不代表通用的获胜概率。
评估函数本身不会选择最终着法。搜索会比较许多未来局面,并通过等方法把它们的数值向后传回初始局面。因此,对当前棋盘的快速评估可能不同于搜索各种可能着法序列后的结果。
用法与背景
在界面中,0.00通常表示引擎按自身尺度估计局面平衡,并不表示该局面已经被证明为和棋。
常见混淆
静态评估与完整分析
静态评估直接为一个局面打分,不展开新的长变例;完整分析则把评估与搜索结合起来。
评分与客观真相
除已解决的残局外,这个数值是一项估计,可能随着搜索加深而改变。
来源
- 1.Evaluation, Chess Programming Wiki
- 2.evaluate.cpp, Stockfish
- 3.UCI Protocol and Stockfish Commands, Stockfish
