想象一下你过年回家,七大姑八大姨很仁慈没有问经典问题。聊到最近玩儿什么的时候你说国际象棋。哦?下棋?你下的怎么样?
如果他们一点不懂国际象棋,你的回答可能是跟隔壁工位的谁谁五五开,下不过库管大爷,曾经血洗小学象棋班。
如果他们稍微了解一点,你的回答可能是绝对没到特级大师和国际大师的水平,跟棋联大师下过几盘输多赢少,和候选大师互有胜负。
而如果他们也玩儿,你的回答可能就是个数,1764(42*42)。
可见回答是随着谈话者对这个游戏了解的水平逐步深入的。但想讲清楚这个事儿,顺序的反着来。
作答中最后的那个数字有个名字,Elo。它是天梯匹配机制的基础,当今很多线上对战类游戏,以及相当多的体育赛事都用这个算法作为基础制定匹配机制。
该计数法由物理学家阿帕德·伊洛(Arpad Elo)开创,它由两个主要公式组成。细看公式之前我们先谈一下这两个公式的分工。第一个公式负责给每对选手设置一个获胜的预期值,该预期值由双方的分数差距作为变量计算。第二个公式负责根据对弈结果给两位选手的分数作调整。
而既然是分数调整系统,那就有个先有鸡还是先有蛋的问题。我要开发一个赋分系统,但这个系统首先需要两个棋手有分数才能计算,怎么办?各位如果前往国际象棋对战网站(主流的Lichess 或 chess.com)上注册一个新号,会发现自己的所有赛制分数起始都是1000,随着对战数增多,分数逐渐上升或下调到相对准确的水平。国际棋联最初预计俱乐部棋手的平均水平是1500,而这个1500分的平均,并不只是多个棋手分数的平均,同时也表示一个棋手当天发挥水平的平均。也许今天文章入精选了开心,发挥出了1550的实力;又或许明天评论区爆了特郁闷,只能发挥1450的实力。但不管怎么样,他平均水平是1500。顺带一提,评分的最低分是100,因此就算我想整活,也没法把自己伪装成战斗力只有5的渣。
我们已知卡斯帕罗夫比库管大爷强,库管大爷比刚注册的阿伟强,阿伟比幼儿园象棋班的孩子强。我们先大致给他们赋分,然后根据结果进行调整。当然,首先样本不会这么少;其次预计赋分不会这么随便,还是会根据1000~1500作为平均人水平;最后更不可能真的叫来上到卡斯帕罗夫下到黄口小儿的棋手来对弈观察。
当我们把两个棋手的分数差和他们的预计结果投入正态分布函数中,则在以10为底时,生成如下图形。
可以看出,90%的情况下,差异越大,分数高者获胜预期越大,并在差异达到400的时候最大。请注意这条曲线本身是双方差异的绝对值,因此0左边的部分并不是分数低于对手,而是在分数差距比较小的情况下有一定概率分数高者也会吃瘪。而由于这个差异图形是一个对称的大钟型,因此从0点所在的分数差异开始,分数高者吃鸡和吃瘪的概率是各占50%的。
在伊洛的计算中,分数相差200的棋手,其获胜预期为75%。这个75%很精髓,它作为预期是一个单纯的数,而不是“是”或“否”。国际象棋赛制中,获胜得1点,平局各得0.5点,输棋不得点,则这个75%可以表示一个棋手75%胜利,0平0负。也可以表示50%的胜利,50%的平(即0.25)和0负。因此他不是绝对的你一定赢比其他结局多的概念。这里理解成75%是多种情况的数字体现就好了。此处可能产生一个误会,赛制得点和我们今天介绍的Elo分数并不是一样,本文中将比赛结果得分以“点”称呼。
有a、b两位棋手,E表示预计得分,R表示分数,R’表示变化后的分数,S表示得分,K是一个常数,^表示次方。手头没有公式软件,对Excel式公式深感抱歉。
如果你上网搜Elo,就会得到这么个公式。看起来是统计函数,它是将上面Elo 预估90%情况下天梯分数差别400时预计胜利倍数最大这句话转换成公式:
一场比赛中双方点数的和总是1,也就是100%。因此乙方获胜的预计Eb与甲方获胜预计Ea的和是1。Ea+Eb=1,上式中的Eb=(1-Ea),公式可以简化为:
也就是刚才找到的公式。至此,选手a获胜的概率可以依靠双方的天梯分数做出预估。接下来,我们可以将这个预期带入第二个公式,该公式的功能是根据棋手的每场比赛结果进行调整。首先我们看一下公式:
棋手a分数的变化是他原本的分数加上他们实际得点与预期得点的差与系数K的乘积。这里的K是一个人为设置的系数,它限制了每场比赛之后选手分数变化的最大值。国际棋联将这个系数定为32(不是42差评!)。
光看公式还是一头雾水,我们看个例子。比如每次都能把我们的脸按在地上摩擦的库管大爷有幸和侯逸凡(目前Elo 2650)来一场比赛,在此之前我们教大爷在电脑上下棋,发现大爷的战斗力居然高达2400。那么,大爷对侯逸凡的获胜预计是
1/[1+10^(2650-2400)/400]=0.19
毫无胜算,然而当天我们给大爷进贡了一瓶牛二,大爷有如神助,居然赢了侯逸凡得1点,那么大爷的分数变化如下:
分数需要四舍五入到整数,大爷凭此一战狂揽26分。而侯逸凡呢?我们已知大爷的获胜预期为0.19,则侯逸凡的预期为0.81。此战仓库里翻船得0点,她的分数会下降:
侯选手丢掉26分。分数变化是一样的,数学路径是一样的嘛,想引起注意的是两者计算时分数和的点数与获胜预期的计算方法。
然而大爷有生之年终于棋逢对手,一定要侯逸凡再来一局。对方欣然应允。然而第一局耗费了一定时间之后,牛二的Buff有所削弱,第二局双方战成平手,则我们快速算一下大爷的分数变化。首先大爷的胜利预期有所变化:
1/[1+10^(2624-2426)/400]=0.24
即便是平局,大爷仍然可以从大师身上拿到8分,因为对方差异是在是太大了。
至此,大家应该对这个计算有一定了解了。但是为了说明Elo的特性,我们还要把时间往回调。卖给我们牛二的无良商家给了我们假酒,大爷即上头又上火,输了第一局。我们已经知道获胜预期是0.19,大爷输了的变化是:
大爷与高手过招虽败犹荣,只损失6分。这就是Elo 系统的好处,选手的分数动态变化与其对手的水平相关。首先作为匹配机制,你的对手和你不会有太大的差别,否则一方的获胜预期过低。而想要上分的选手无法通过加好友炸鱼塘来获得大量分数,因为自己的获胜预期越高,胜利之后得到的分数越低。
我记得 MCAT-oncle 的游戏开发分享里有相关内容,但写文章的时候找了一下没找到,很可能在数学和线性那些大系列中。大家可以前去搜索,非常值得关注的宝藏机友 。 是不是有一点终于弄懂了 Elo 系统的感觉了?有些玩家兴奋地在chess.com或者lichess上来一盘,照着这个公式算了一下积分,然后发现分数不一样。这是因为虽然 Elo 系统被广泛应用在包括国际棋联在内的多个主办方实体,chess.com却觉得它过于简单。当然,作为一个成功的商业实体,chess.com面对的棋手从数量到质量再到动机都比棋联这种目的较为单一的主办方复杂得多。他们使用的是一套 Elo 的超魔改mod,叫做Glicko的系统。
Glicko系统的发明人是马克·格里克曼(Glickman)。与Elo 系统一样,该系统也被大量运用到电子游戏匹配当中,《反恐精英:全球攻势》,《Splatoon 2》等都采用这个方式。Glicko 系统的基本思路和Elo 系统是相似的,但其中引入了一个新的概念,分差(Rating Deviation),一个赋分的标准差。比如我们上面提到一个棋手高兴或者不高兴可能会导致当天棋力比平时高或低出50分,这50分就是赋分标准差,连续两天波动最多形成一上一下两个标准差的和100分。
RD表示分差,RD’表示新的分差,min表示最小值,t表示本次比赛与上次之间间隔的时间,c表示一个棋手因为停止下棋,其分差回归到不确定所需要的特定时间周期,√表示根号,根号内的内容在()中表示。m表示的是比赛的数量。
Glicko的计算分三步。首先确认分差,然后调整分数,最后调整分差。先看一下第一步的公式:
RD’=min(√(RD^2+c^2t),350)
看了防剧透也还有未知信息。这个350指的是由于一位棋手水平未知,我们先假定他的分差是350分(!!!)。这个公式就是一个新手刚上来打几盘,分差在他的上一盘分差一通操作之后与350之间取最小值。
那我刚上来,这个RD怎么来呢?有一个默认数,我们按50算吧。那c呢?我们为了推导需要知道t,这个只要看你上一把啥时候打的就行。哦你是新人,那我们按100天算。由于c的定义是棋手停手后回归到分差为350时的空窗期,我们可以把上面的公式反过来:
知道了分差,接下来我们看调整天梯分数的第二个公式:
r表示新天梯分数,r0表示旧分数。与r’和r一致。m表示的是比赛的数量。ri和RDi分别表示的是对方的分数和分差,si表示的是比赛结果,仍旧是胜1平0.5负0。E为自然常数。q=ln(10)/400
……我就不上手算了……将m把游戏后获胜预计与实际结果的差与对方分差的加权的积合计后与考虑动态分差后形成的预计获胜的加权,其结果是本次应产生的天梯分数变化。
很绕,而且这里的分差不应该以单纯数字理解。我们看到在这个公式里,对方分差一直不断变化加权,其原因是在这套体系中,分差的概念是一个棋手真正实力的范围,而不是平均值。而公式只看比赛数量和对手基本分数、分差。
好难啊,交给计算机算吧。这个系统还有-2型号哦,是原型号的另一个版本,这里就不再冗述了。我们可以看到Glicko系统的好处是他将棋手水平的浮动考虑进来了。并且因为不是所有玩家都像专业棋手一样每天对弈,他也考虑到了棋手对游戏生疏后对分差,也就是水平范围的影响。
不难看出它在电子游戏和对弈网站上受青睐的原因。试想一下,你有没有过这样的经历:一个游戏打了一段时间很厉害,各种原因放下几天有点生疏,但回来第一场对战似乎也还行,没有想象中被血虐。就是因为在这个算法中,由于大数据分析 c 是预知的,而你上一次进入游戏的时间 t 以及你水平飘忽程度RD都是已知的,对战平台可以算出你现在的水平大概可以和谁对战。
有了这个认识,下次在大厅里等待匹配的时候可以稍微耐心一点,后台正在努力计算谁配得上和你牵手。辛苦伺服器了。
然而就像早年间回力鞋就是帆布的代名词一样,虽然我们网上对战用的是Glicko系统,但有些时候炫耀吹牛的还是会习惯性地说Elo,或者我在哪儿哪儿哪儿的Elo是多少什么的。更通常的说法是介绍自己(或询问对方)的水平有多少分(rating),在哪里下棋。不过也不必太较真,Elo 发音多简单,而且毕竟是鼻祖,非常婆罗门。这次安排用Glicko积分的关公对战Elo排名的秦琼,必然是不会在真实世界中发生的。
伊洛的这个划时代的发明出自1960年,于是就有了一个问题。这之前的国际象棋大师们过年回家都怎么炫耀自己多牛哔呢?现在我们经常看到文章视频介绍以前人物的时候他们还都有Elo评分,但那都是后人预估的。实际上在Elo之前,各地棋联就已经开始使用评分系统。只是这些系统很少实现大一统,且多半有人为的硬性数据设计。比如哈肯尼斯系统中得点超过50%则超出部分衰减10%。
1933年是大型联合主体最早使用数据排名的年份,美国棋联采用了舒尔特计分法。没找到相关介绍。这个计分法并不是在33年才出现,而是在此之前只在俱乐部小范围使用。而在此之前,棋手们就只能根据名声,偶尔见到的棋谱,以及去各个俱乐部里瞻仰其中的名人堂来了解各位的水平。
比如头图中是《第七封印》中骑士安东尼乌斯和死神猜棋子决定黑白的镜头。当时死神正要带他上路,安东尼乌斯听说死神是个国际象棋高手,于是提出象棋决斗。如果自己能赢,死神就得放过他。想想还挺浪漫的。这要是两者都在棋联注册过,各自一报Elo,安东尼乌斯就要直接被带走。开始嫌弃Elo 了。
不玩儿国际象棋的人多少也会对一些大师有所耳闻:鲍比费舍尔,保罗墨菲,卡尔波夫,卡斯帕罗夫,各个儿特级大师。最不济也知道刘适兰——我国第一个女子特级大师,跟深蓝的二回战剑走偏锋,如子面意义上把深蓝给整不会了(众说纷纭)。
特级大师是一个终身称号,除非利用这个身份招摇撞骗,下棋出千,会被除籍,否则一日为大师,终身牛哔。那么如何才能成为与鲍比费舍尔比肩的特级大师呢?首先,从睡梦中醒来。
你得经历千锤百炼,天将降特级大师与斯人也,必先苦其心志,劳其筋骨,饿其体肤,行拂乱其所为,然后动心忍性,增益其所不能。直到你的Elo达到2500分。库管大爷加油啊!
想要得到特级大师资格,就需要参加国际棋联资格赛(Norm),赛事并不一定是专门设置的,任何国际棋联举办或承认的比赛满足资格赛要求都可以作数,有些资格赛会要求参赛者达到一定Elo。需要注意的是,我们现在提到的特级大师主要指的是国际棋联的特级大师,世界上还有其他一些组织授予不同名号,此处暂且不表。这些赛事的要求有:
通常参加过三场这样的资格赛之后,该棋手需要满足以下条件:
国际象棋生涯中达到过2500分;
对手中33%是特级大师;
对手中50%有国际棋联称号(稍后介绍);
对手平均Elo至少达到2380;
这个2500分,只要在象棋生涯中达到过2500即可。比如我们大爷,2400,资格赛期间上分到了2500,但之后输了几把又跌回2400了。没关系,照样有资格申请。
要求对手中50%有国际棋联称号,他们有特级大师,国际大师,棋联大师和候选大师。在资格赛满足相应条件后,选手需要的分数从特级大师的2500,逐级下调100分。同时,女选手有相应的女子资格,分数要求与男子组每级下调200分。获得这些称号的方式也是参加资格赛,但相应的,需要获得特定点数的区间和对手水平比例也会有所下调。就不再冗述了。
最后两个条件,对手平均Elo 2380 和得到足够点数是一个大表格的简单描述。由于我们上面介绍的Elo 天梯匹配系统,你更有可能和自己旗鼓相当的对手对战,而不同水平的对手代表着获胜难度和机会的不同。比如我们的库管大爷参赛,对战都是2380到2433这个区间的对手,那我们大爷的胜算还挺高的。以及又因为大家分数都差不多,胜胜负负不太能有突破这个区间的情况。根据棋联的规定,在这个区间作战的大爷需要获得7个点。还记得之前的积分制度吗?胜平负分别是1分,0.5分和0分。
也就是说,大爷需要在三场资格赛的27场对决中,在自己的Elo区间满足对手有足够数量的大师,还要得到7点积分。27的33%,要对阵9位特级大师;50%,要对阵14个经历过资格赛拿到足够点数的选手,新人凶多吉少啊。剩下最多13场,必须拿到至少一胜!因为凑够7点积分如果一场没赢,就需要有14场和棋……私下里,棋手们都觉得想要成为特级大师,至少得赢过一位特级大师,这就使算着点数前进的棋手们压力山大。
但这还有几个问题。首先如果大爷一直在最低限度的区间对战,很可能接触不到指定数量,即33%的特级大师。其次如果大爷其中某场比赛Elo产生较大变化,不管是突破还是跌破,对应的点数积分和条件都有变化。此外你还不知道下一场对阵的是谁,因为大家的Elo都在变化。是对上一个风头正劲的精神小伙,还是一个假酒刚醒的特级大师?命运多舛啊。
于是这里介绍一下资格赛两种形式。刚才一直在提得是公开赛。棋联举办,来自五湖四海满足条件者均可参赛,主办方还会邀请大咖前来与民同乐。
而另一种是所谓的关门赛。不同区间的选手已经给你安排妥当,第几轮对阵谁,用什么颜色也都明明白白,区间里的大师数量也给你准备好。基本就是挑战资格的一个副本,套路已经备妥,就看你够不够格。当然,这种关门赛想要邀请大师,还要大师们按照副本boss区域来,那是要花银子的。银子从哪儿来?羊毛出在羊身上。
当然,这只是最常见的获得称号的办法。如果机缘巧合之下,一个棋手居然在洲际冠军赛中爆冷夺冠,或者在国际棋联世界冠军赛中打进前16强,或者在女子世界冠军赛等可以直接获得称号的冠军赛夺冠,那么特级大师的称号便会直接授予。但这得是什么机缘啊!
对于国际象棋棋手的实力,各位应该有了个笼统的了解。但这个实力毕竟只是个数字或者称号,并不直观。必须亲自下场打上一段时间,才能发现大神何以为大神,你大爷凭啥还是你大爷。想想自己看大神们打《Quake》的视频,大概可以类比看大师下棋的感叹。
库管大爷的实力我们已经见识到了,隔壁工位跟咱们只能算是臭味相投。而至于血洗小学象棋班,现在可能已经洗不动了。特级大师谢尔盖,获得称号时12岁7个月。特级大师古喀什,获得称号时12岁7个月又17天,就是兴趣班报晚了点儿。卜祥志和十几年后的韦奕,两位都是不到14岁就获得特级大师称号。
小神童们先姑且不表,库管大爷可都是隐士高手,但大爷无他,唯手熟尔。我们总说人老了学不了新东西,但那些有闲情逸致又有业余时间的大爷们,从篮球场到象棋盘,从KTV到诗朗诵,不断刷新着我们的认知。
我们是不是也应该从中感应到什么?有一天我看了个侯逸凡的访谈,被问到最近在看什么剧,记得似乎说在看《实习医生格雷》还是《傲骨贤妻》来着,总之就是和你我他一样一样的。但她同时也仍然在看国际象棋的书,而且似乎是重看。他们强大的原因也仅仅是对这个游戏的热爱和投入。而这份热烈的感情是Elo 所不能计量的。
明年过年,你也许可以带一套国际象棋回去。教教长辈、晚辈们怎么玩儿。能不能玩儿下去先不谈,总之给他们报个好。在这么个纷乱迷醉的世界里,我有一个热爱的游戏,并且想和你们分享。
评论区
共 12 条评论热门最新