首页 百科知识 评分系统在围棋中的应用

评分系统在围棋中的应用

时间:2022-10-01 百科知识 版权反馈
【摘要】:而Elo评分系统中的可以进行团队评价的特性,则能很好地使用到这种情况中来。Listing13.1的伪码中,第7~14行是通过对棋谱中的每一步棋进行分析,得到相关特征的统计数据,第15~19行则是应用已获得的统计数据进行Elo值的计算的迭代过程,其中第15行的N的值是迭代的次数。

13.4 Elo评分系统在围棋中的应用

在围棋中,符合Bradley-Terry模型所描述的两两竞争或多个选手之间的竞争是随处可见的。对棋谱进行分析的时候,在一个当前局面下,每个可选点就可以看作一个选手,而在所有可选点之间真正选择的那个点就可以说是这轮竞赛的优胜者。

在进行比较的时候,我们需要比较的不是一个个的可选点,而是可选点所具有的特征。对于可选点的特征的选择,我们可以把所有的直接的知识拿来作为特征进行Elo评分,前面介绍的上下文模式就可以作为其中的一种特征,使用Elo计算得到的分数,应用在对弈过程中,可以取得比之前单纯依靠频率计算更好的效果。

当然,引入模式是为了弥补规则知识的不足,模式的使用也并不能取代规则知识。而且,不仅模式需要判断其好坏程度,规则知识在使用时也只是依赖逻辑的判断并不能准确的描述其具体的使用场景,因而也迫切需要一个量化的衡量。知识规则都具有这个情况,每条具体的知识规则的使用环境很难通过条件的判断予以限定,由此也可以用Elo系统进行评分。

我们换个视角来看模式和规则的关系,对于一个可选点,它可以既满足某个模式也满足某条或某几条规则,模式可以看作该可选点的一个场景特性,而规则知识则可以看作该可选点的逻辑特性,如果将其组合起来一起评分,便可以对一个可选点进行更加准确的描述。就如同评价一个足球队的强弱的时候,只评价前锋还是只评价后卫都不能准确的衡量其水平,只有考虑了整个球队11个人的总水平,才能更好的衡量整个球队的水平。而Elo评分系统中的可以进行团队评价的特性,则能很好地使用到这种情况中来。

当面对一个局面的时候,我们对于每个可选点,既需要判断其是否符合某个模式,同时也需要判断其是否可以用某个或某几个知识规则来描述,并将模式和规则知识组合在一起成为一个组,来进行Elo评分。

在程序实现上,主要可以分为3个部分,一是控制整个的计算过程,如Listing13.1中的伪码所示;二是通过对所有棋谱进行一个打谱过程,在每一步记录下所匹配的特征的相关统计信息,Listing13.2中是相关实现的伪码;三是对Elo值的具体计算过程,其伪码在Listing13.3中。

Listing13.1的伪码中,第7~14行是通过对棋谱中的每一步棋进行分析,得到相关特征的统计数据,第15~19行则是应用已获得的统计数据进行Elo值的计算的迭代过程,其中第15行的N的值是迭代的次数。

Listing 13.1 采用Elo评分系统对围棋特征的抓取的伪码

img167

Listing13.2的伪码中,第5行是对特征的判断,判断一个特征是否符合该棋盘状态,如果特征可以匹配的话,则判断该位置是棋谱中实际落子的位置还是其他位置,如果是落子位置,则将该特征标记为胜,否则标记为败,并将该特征以及其胜负信息记录下来,最后,在第15行,所有匹配的特征及其胜负信息都作为返回值被返回。

Listing 13.2 特征的提取的伪码

img168

Listing13.3的伪码中,是利用之前获得的关于特征的统计信息,在一次迭代过程中对Elo值的计算,第3~14行是对每个特征进行遍历,对于每个特征首先在第4行计算其胜利的总的次数,也就是式(13.9)中的分子,之后通过对所有出现该特征的情况的遍历来计算得出式(13.9)中的分母部分,在第8~10行;每完成对一个特征的迭代过程,则记录其新的Elo值,如第13行所示;最后,在第15行中将每个特征的新的Elo值返回。

Listing 13.3 Elo值计算的伪码

img169

在提取模式时,我们采用打谱的方式将棋谱中的棋子依次摆在棋盘上,对于一个棋盘状态,在棋谱中的实际落子位置和其他可下点间就可以建立起一种比较关系,对每个可下点提取模式后,便可以采用Elo方法来对各个模式计算分数。

我们同样是对之前计算频率时的16 067份职业棋谱进行Elo评分,并将其按照Elo分数从高到低排序,其分数最高的10个模式如图13.1所示。

img170

图13.1 Elo方法对从16 067份专业棋谱提取的模式的评分中最高的10个模式

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈