競技場積分系統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


=======================================================================

mark一下,留着以後自己需要做競技場系統時使用

發佈了23 篇原創文章 · 獲贊 9 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章