竞技场积分系统ELO详解

来源:互联网 发布:淘宝达人可以直播 编辑:程序博客网 时间:2024/04/30 05:10
 
竞技场积分系统ELO详解

作者kane-zhu  转自:http://hi.baidu.com/wuaiyishang/blog/item/0ea6ec8dde90d76d9f2fb463.html
来源:http://bbs.ngacn.com/read.php?tid=1284872&fpage=1

Elo rating system

这个系统用来计算玩家的相对技术等级,通常用于博弈类游戏,比如国际象棋,围棋 *注1。

Elo,并不是一个缩写,而是系统发明者的姓,它本来是个改良的国际象棋积分系统,现在被广泛用于许多游戏。比如帝国时代3,星际,魔兽争霸3,unreal,guild wars等等。


组建模型
1 Elo假设每个玩家在每盘游戏中的表现是一个正态分布的随机变量,尽管选手在不同的游戏中发挥可能差异很大,但每位选手在一段时间内表现的平均值变化很小。elo用随机变量的平均值来代表选手的真正水平。(这句话基本没什么意义)

2 elo用胜平负来评价选手在某一场游戏中的表现,赢就是这场你发挥的比对手好,反之就是不好。(赢就加分,输就扣分,平手不得分),这是因为你不可能从某一手棋的好坏来评定一个选手的等级,下了一手好棋,或一串手筋就给2000分的评定,显然很难有说服力。

这两条就是大致的模型构建,当然是简化了的。。为了简化计算elo有一个true skill值给每个选手,当然这个值还有很多优化的算法,跟魔兽没什么关系。有兴趣的同学可以参照xbox live online的一个算法http://research.microsoft.com/mlp/apg/trueskill.aspx


数学公式
正题了, 做好笔记。。

Ra: A选手当前rating Rb: B选手当前rating

Sa: 实际胜负值, 胜 = 1 平=0。5 负=0

Ea:预期A选手的胜负值,EA = 1/(1+10^[(Rb-Ra)/400])
Eb: 预期B选手的胜负值 EB = 1/(1+10^[(Ra-Rb)/400])
Ea+Eb=1
E值也是预估的胜率,所以Ea+Eb =1,

K:每场比赛能得到的最大rating,魔兽里k=32 *注2

R'a A选手一场比赛之后的rating

R'a = Ra + K(Sa-Ea)

举例讲解
A队1500分,B队1600分,预估A队的胜负值Ea = 1/(1+10^[(1600-1500)/400])=0.36

假设A队赢了,实际胜负值为Sa=1

A队最终得分为 R'a = 1500 + 32*(1-0.36) = 1500+20.5 = 1520, 赢20分 B队输20分。

假设B队赢了,预估B队胜负值Eb = 0.64
B队最终得分为 R'b = 1600 + 32*(1-0.64) = 1600 + 11.52 = 1612, 赢12分,A队输12分。

这就是为什么你赢高分队分数多,输给低分的输的也多,赢低分的分数很少。
其实K值就是这个方程的极限,所以理论上你最多可以赢一个队伍32分,实际上29-30已经差不多了,赢了不得分也是有可能的。

平局在wow竞技场里也有可能发生,最后2个玩家同时死亡,则都不得分。

国际象棋rating的一些分析
这部分跟wow没有特别大的关系,拿来参考以下。

美国国际象棋联合会制定的评分及称号的标准,也是一1500作为基础分:

* 2400 及以上 超级大师
* 2200 - 2399 大师
* 2000 - 2199 专家
* 1800 - 1999 Class A
* 1600 - 1799 Class B
* 1400 - 1599 Class C
* 1200 - 1399 Class D
* 1000 - 1199 Class E
全世界有19743人 2200以上,1868人2400-2499,563人2500-2599, 123人2600-2699,18人2700-2799,只有4人打到过2800。其中包括棋王卡斯帕罗夫。

电脑深蓝如果评分的话估也计超2800。

根据这个,算一下国际象棋有多少player pool,wow arena 有多少player pool就能知道wow 竞技场大致冲能到什么分数,目前看来2600是极限了,那也是得在人很多的服务器大组上,当然中国玩家冲到2800我也不会意外的。

 

大致翻译完毕,加了些评论,算是第一稿翻译了,wikipedia上这篇文章就是没中文,其他语言都有。。
注1 其实围棋不用这个系统,用的是段位这个相对模糊的概念,因为围棋本身就是比象棋/国旗象棋抽象的多的一个游戏
2 wow里的k值可以通过两个1500队伍的比赛推算出,输赢个16,所以k=32

原创粉丝点击