关于黑白棋的估值,有三个很重要的概念,行动力,潜在行动力和稳定子,还有一个概念是奇偶性,在终局时有些作用,而开局时没什么用处。对此不了解的朋友可以到网上搜索,有很多介绍。本文主要介绍一下模板估值的原理。
行动力,潜在行动力和稳定子,这些参数的计算都是比较复杂的,为了加速估值,提出了模板估值法。模板估值的思想是将全局的行动力,潜在行动力和稳定子化为局部的行动力,潜在行动力和稳定子,再将这些局部的参数组合来表示全局参数。每个局部包含的棋子个数不多,可以预先计算好,这样在最终估值时就可以用查表代替计算,如此来加快速度。
模板是棋盘上的某一块区域,比如棋盘上的一行,一个角落上边长为3的方块等。注意,棋盘上的第一行和第八行以及第一列、第八列都是等效的,属于同一模板,因为他们可以通过旋转来得到,同理,四个角落的方块也是同一模板。模板中每个棋位有3种状态——黑、白、空,因此一个包含N个棋子的模板总共有3^N种状态,也叫模板配置。根据每种模板配置所能代表的局部行动力、潜在行动力、稳定子,可以为每种模板配置打分,而对一个局面估值时则把棋局拆分为各个模板,根据每个模板的配置来查找每个局部的得分,最后加起来得到整个局面的得分。
模板的选择,我不清楚是否有什么理论指导,但大多数强力的程序都做出了类似的选择,以Zebra为例,他选择了11种模板,分别是——第2、3、4行,长度4、5、6、7、8的斜线,第一行加上两个X格(X格就是B2这种位置),角落上的边长为3的方块,角落上2X5的长方形块。其中长度为8的斜线通过旋转有两种实例,而2X5的长方
行动力,潜在行动力和稳定子,这些参数的计算都是比较复杂的,为了加速估值,提出了模板估值法。模板估值的思想是将全局的行动力,潜在行动力和稳定子化为局部的行动力,潜在行动力和稳定子,再将这些局部的参数组合来表示全局参数。每个局部包含的棋子个数不多,可以预先计算好,这样在最终估值时就可以用查表代替计算,如此来加快速度。
模板是棋盘上的某一块区域,比如棋盘上的一行,一个角落上边长为3的方块等。注意,棋盘上的第一行和第八行以及第一列、第八列都是等效的,属于同一模板,因为他们可以通过旋转来得到,同理,四个角落的方块也是同一模板。模板中每个棋位有3种状态——黑、白、空,因此一个包含N个棋子的模板总共有3^N种状态,也叫模板配置。根据每种模板配置所能代表的局部行动力、潜在行动力、稳定子,可以为每种模板配置打分,而对一个局面估值时则把棋局拆分为各个模板,根据每个模板的配置来查找每个局部的得分,最后加起来得到整个局面的得分。
模板的选择,我不清楚是否有什么理论指导,但大多数强力的程序都做出了类似的选择,以Zebra为例,他选择了11种模板,分别是——第2、3、4行,长度4、5、6、7、8的斜线,第一行加上两个X格(X格就是B2这种位置),角落上的边长为3的方块,角落上2X5的长方形块。其中长度为8的斜线通过旋转有两种实例,而2X5的长方