グリコレーティング

グリコレーティングとは



グリコレーティングは、チェス囲碁のような対戦型ゲームにおいて、プレイヤーの強さを数値で評価するためのアルゴリズムです。イロレーティングをベースに、マーク・グリックマンによって開発されました。このシステムの特徴は、レーティングだけでなく、その信頼性を示すレーティング偏差(RD)を導入している点です。

グリコレーティングの仕組み



グリコレーティングは、プレイヤーのレーティングとRDを用いて、そのプレイヤーの強さを評価します。RDは、レーティングの正確さを示す指標で、標準偏差と同じ意味を持ちます。例えば、レーティングが1500、RDが50のプレイヤーの場合、その真の強さは95%の確率で1400から1600の間にあると推定されます。

ゲーム後のレーティング変動は、RDに大きく依存します。RDが小さいほど、レーティングは正確に評価されているため、変動幅は小さくなります。逆に、RDが大きい場合は、情報が少ないため変動幅が大きくなります。RD自身も、ゲームをプレイするごとに減少しますが、長期間ゲームをプレイしないと徐々に増加します。

グリコレーティングとグリコ2レーティング



グリコレーティングの改良版として、グリコ2レーティングがあります。グリコ2レーティングでは、レーティング変動率(σ)という新しい指標が導入され、より詳細な評価が可能になっています。

これらのアルゴリズムパブリックドメインとして公開されており、LichessFree Internet Chess ServerChess.comなどの多くのオンラインゲームプラットフォームで利用されています。

グリコレーティングの算出方法



以下に、グリコレーティングの具体的な算出方法を説明します。グリコ2レーティングの算出方法は異なります。

初期値



レーティングが未設定のプレイヤーの場合、初期値としてレーティング1500、RD350が用いられるのが一般的です。

ステップ1:事前RDの算出



新しいRDは、古いRDと、最後にゲームをプレイしてからの経過時間を用いて計算されます。


RD = min(√(RD0^2 + c^2t), 350)


ここで、tは最後にゲームをプレイしてからの経過時間(レーティング期間)、cはプレイヤーのスキルが時間経過とともに不確かになる度合いを示す定数です。この値は、データ分析から算出したり、RDが未レーティング者のRDに戻るまでの時間を元に推定したりできます。

例えば、標準的なプレイヤーのRDが50で、100レーティング期間で未レーティング者のRD350に戻ると仮定した場合、定数cは以下の式で求められます。


350 = √(50^2 + 100c^2)



c = √((350^2 - 50^2) / 100)


ステップ2:新レーティングの算出



m回の一連のゲーム後の新レーティングは、以下の式で求められます。


r = r0 + (q / (1/RD^2 + 1/d^2)) Σ[i=1 to m] g(RD_i) (s_i - E(s|r, r_i, RD_i))


各値の意味は以下の通りです。

`g(RD_i) = 1 / √(1 + 3q^2(RD_i^2) / π^2)`
`E(s|r, r_i, RD_i) = 1 / (1 + 10^(g(RD_i) (r - r_i) / -400)`
`q = ln(10) / 400 ≈ 0.00575646273`
`d^2 = 1 / (q^2 Σ[i=1 to m] g(RD_i)^2 E(s|r, r_i, RD_i) (1 - E(s|r, r_i, RD_i)))`

ここで、

`r_i`は各対戦相手のレーティング、
`s_i`は各ゲームの結果(勝利は1、引き分けは1/2、敗北は0)を表します。

ステップ3:新RDの算出



ゲームをプレイすることで、プレイヤーのスキルがより正確に評価できるため、RDは減少します。新しいRDは以下の式で計算されます。


RD' = √((1/RD^2 + 1/d^2)^-1)


まとめ



グリコレーティングは、プレイヤーの強さを数値化するだけでなく、その評価の信頼性も考慮した、より高度なレーティングシステムです。オンラインゲームを中心に広く利用されており、プレイヤーのスキルを公平に評価する上で重要な役割を果たしています。

関連情報



イロレーティング: グリコレーティングの基礎となったレーティングシステム。
TrueSkill: マイクロソフトが開発した、グリコレーティングをベースにしたアルゴリズム

外部リンク



Mark Glickman's World - Glicko Ratings (英語)
RobKohr/glicko - JavaScriptグリコ2実装
mmai/glicko2js - JavaScriptグリコ2実装
sublee/glicko2 - Pythonグリコ2実装
* PlayerRatings - Rグリコ実装

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。