请选择 进入手机版 | 继续访问电脑版

黑白棋乐园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 1188|回复: 1

Glicko等级分系统简介

[复制链接]
发表于 2017-4-2 13:31:40 | 显示全部楼层 |阅读模式
转自:http://www.soongsky.com/other/glicko.php


Glicko等级分系统是由Mark Glickman发明的。Glicko等级分是根据棋手之间的比赛结果计算而来,它包含等级分(Rating)和等级分误差(RD)。等级分表示棋手水平的均值,误差表示棋手水平的均方差。
与一般的等级分系统所不同的是,Glicko等级分系统引进了误差的概念。这是因为棋手的每次比赛结果都难免带有一些随机性,而棋手的水平也会随时间推移而变化,这样由数量有限的比赛结果计算而来的等级分会有一定的误差。因此Glicko等级分系统在计算等级分的同时,还估算出计算误差有多大。等级分及其误差共同构成棋手水平的置信空间,其中95%置信空间为:等级分 ± 2 × 误差
棋手刚开始参加比赛时,系统对棋手的水平所知甚少,这时的误差较大;随着比赛的增多,棋手水平得以充分体现,误差也相应地减小。如果棋手很长时间不参加比赛,棋手水平又会变得很不确定,在这种情况下,系统就会相应地增大误差。
下面简单介绍Glicko等级分系统的具体计算方法。
1、定级周期应用Glicko等级分系统来给棋手定级之前,首先需要确定一个定级周期。在每个定级周期结束时,对本周期内发生的比赛进行计算,分别更新各棋手的等级分及其误差。定级周期的长短根据比赛的频繁程度而定,一般推荐每个周期内平均每位棋手至少5~10局比赛。
2、起始值在每个定级周期开始时,先确定每位棋手的等级分及其误差。
(1)如果是新加入的棋手,则设初始等级分r = 1500,初始误差RD = 350。
(2)如果是老棋手,等级分即为最近的等级分r = rold,误差根据最近的误差RDold计算而来:
RD = min(sqrt(RDold² + c² t), 350)
其中:
t为棋手最近一次比赛至今所经历的定级周期数,如果上一个定级周期内参赛,则t = 1。
c为常数,用来控制棋手水平随时间推移而产生的不确定度,它一般按以下方法确定。
假定一位典型棋手RD = 50,如果他长时间(比如5年)不参赛,他的棋力水平最终会变成完全不确定,即RD = 350。假设定级周期为1个月,则可以根据下式计算出c值。
350 = sqrt(50² + 60 c²)
3、更新等级分假设棋手的等级分为r,误差为RD。这一个定级周期内,他与m位棋手进行比赛,比赛结果分别为s1、s2……sm。这里胜局s = 1,平局s = 0.5,负局s = 0。m位棋手的等级分及其误差分别为r1、r2……rm及RD1、RD2……RDm。如果与同一棋手进行了多次比赛,可视作是与相同等级分的多个棋手进行比赛。
更新后的等级分及其误差分别为:
RD' = 1 / sqrt(1/RD² + 1/d²)
r' = r + q RD'² Σj=1m[g(RDj) (sj - E(s|r,rj,RDj))]
其中:
q = ln(10) / 400
g(RDj) = 1 / sqrt(1 + 3 q² RDj² / π²)
E(s|r,rj,RDj) = 1 / {1 + 10^[-g(RDj) (r - rj) / 400]}
d² = 1 / {q² Σj=1m[g(RDj) E(s|r,rj,RDj) (1 - E(s|r,rj,RDj))]}
在Glicko等级分系统中,如果一位棋手频繁参赛,那么他的误差RD将会变得很小。这样他的等级分就会更新得很慢,从而无法及时地反映水平的变化。一般来说,应避免RD变得过小,这可以通过设定一个RD最小值来实现,比如设定RD最小值为30。

发表于 2017-4-3 12:04:17 | 显示全部楼层
专程来路个过。。。。看到这么多字,头晕
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|黑白棋乐园

GMT+8, 2019-6-27 16:20 , Processed in 0.069676 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表