イロレーティング完全に理解した


アジェンダ

はじめに

イロレーティングは、最も有名なレーティングシステムです。
レーティングシステムとは、プレイヤーの実力の指標を計算する仕組みのことです。
本記事では、イロレーティングの説明と、その応用例を紹介します。

イロレーティング

アルパド・イロさんが考案した1対1の競技おけるプレイヤーの実力の指標です。
元々はチェス用に考案されたものですが、数学的裏付け、実績、わかりやすさから、多くの対戦ゲームで改変したものが採用されています。

特徴

  • 1対1の対戦型競技に適用
  • 同じレート同士の勝率が50%
  • 勝敗比をもとにした計算式

    • AさんはBさんに2勝1敗ペース、BさんはCさんに3勝1敗ペースなら、AさんはCさんに2*3=6勝1敗ペースになるという前提

計算式

あるプレイヤーが平均的なプレイヤーと対戦したときの勝率をW、敗北率をLとすると、レートは以下で計算されます。

400 * log10 (W / L) + 1500

この式をもとに、勝敗比が積で累積する(2*3=6勝1敗になる)という仮定から、AさんのBさんに対する勝率が導出できます。(導出方法はwikipediaを参照のこと)
このとき、Aさんが勝ったら、Bさんの勝率に定数をかけた値を得失レートとしてレートを更新します。
AさんのレートをRA、BさんのレートをRBとすると、AさんがBさんに勝ったときの得失レートは以下で計算されます。

±K / (10^((RA - RB) / 400) + 1)

Kは32や16が採用されることが多いです。
Kが大きいほど本来の実力に早く収束しますが、収束後の変動が大きくなります。
上記の計算式では、レート差に対する勝率は以下のようになります。

レート差に対する勝率1

以下の式で計算を簡略化しているゲームもあります。

±K * ((RB - RA) / 800) + 0.5)

この場合、レート差に対して勝率が線形だという前提になるので注意が必要です。

レート差に対する勝率2

考察

元々のイロレーティングは、勝敗比が積で累積する(2*3=6勝1敗になる)という前提があります。
逆に言うと、この前提に当てはまらない対戦のモデルだとレーティングシステムが正常に機能しません。
レーティングシステムの基本的な考え方としては、レート差に対する勝率をどのように設定するかです。
対戦のモデルに合ったレートの計算式を選択することが重要です。

事例紹介

実際のゲームにおける事例を紹介します。
レートの計算式は公表されていませんので、すべて筆者の推測だということを念頭に置いていただけると幸いです。

ぷよぷよeスポーツ

ぷよスポでは、おそらく通常のイロレーティングの計算式が採用されています。(筆者の推測です)

±Clamp(32 / (10^((RA - RB) / 400) + 1), 2, 31)

ただし、この計算式の結果とわずかに数値が違うので、何らかの補正を行っているものと思われます。
また、2~31でクランプされているかは、データ不足で怪しいです。

ぷよぷよは、運要素や相性によっても勝ち数が左右されます。
なので、例えば、レートが400離れた相手にも2先だと負けることが十分ありえます。
よって、後者の簡略化した計算式よりは前者の計算式の方がマッチすることが予想できます。
勝敗比が積で累積するか(2*3=6勝1敗になるか)は不明ですが、大会の総当たり戦の表などを見ると、そこそこ勝敗比が積で累積しているケースも見受けられるので、それなりに機能しているのではないでしょうか。

機動戦士ガンダム エクストリームバーサス フルブースト

EXVSFBのレーティングシステムは、エンターテインメント性の強い指標となっています。
一定区間のレートごとに階級という称号を設けていて(レート2050~2799が大尉、2800~3799が少佐など)、これがプレイヤーへの報酬となりモチベーションの一端を担っています。
EXVSFBでは、おそらく簡略化された計算式が採用されています。(筆者の推測です)

+Clamp(32 * ((RB - RA) / 5000) + 0.5), 1, 32)
-Clamp(32 * ((RB - RA) / 5000) + 0.5), 1, 32) * (階級補正)

EXVSFBは2on2のチーム戦なので、RA、RBはチームのレーティングの合計です。
5000という値には確証がありませんが、4000~5500程度だと思います。
もしくは、自チームや相手チームのレートによって変動する可能性があります。
レートが大きく離れた相手への対策として、1~32にクランプするようになっています。

階級補正は、新兵~曹長が0、少尉~大尉が0.5、少佐~大佐が0.75、少将~大将が0.9程度です。
階級補正がかかった結果、減少レートが0になることはありえます。

特徴的なのは、負けたチームには減少するレートに補正がかかり、勝ったチームの増加分よりも少なくなる点です。
なので、根本的にレーティングインフレが起こるような仕組みになっています。
これは、いつかは階級が上がるようにして、プレイヤーへの報酬を考慮しているからだと考えられます。

VSシリーズは、チーム固定戦であれば運要素が少なく、実力が十分に反映されます。
なので、ある程度実力差があれば負けることはまずなく、勝率が100%になると考えています。
よって、後者の簡略化した計算式がマッチするのではないかと考えています。
ただし、勝率が線形に近いかどうかは不明です。
チームシャッフル戦は、見ず知らずの人とチームを組むことになりますので、連携が取れずに実力が十分に反映されず勝ち数が左右されます。
なので、チームシャッフル戦の場合は、前者の計算式の方がマッチすることが予想できます。
ただし、そもそも前述のようにレーティングインレフが起こる仕組みになっていますので、このレーティングシステムは正常に機能しないでしょう。

プレイヤーが3人以上のレーティングシステム

イロレーティングでは、1対1の対戦形式でしかレートの計算ができません。
麻雀やFPSのように複数人がそれぞれ戦うゲームではどのように計算を行っているのでしょうか?
よくあるパターンとしては、対戦者全体の平均と比較してレートの計算を行います。

麻雀ゲームの天鳳の段位戦4人打ちでは、以下の計算式でレートが計算されます。

±Max(1 - 試合数 * 0.002, 0.2) * (順位補正 + (Max(卓の平均レート, 1500) - 自分のレート) / 40)

この計算結果の小数第3位を切り上げたものが得失レートです。
順位補正は、1位30、2位10、3位-10、4位-30です。

試合数の補正によって、収束後に大きく変動することを防止しています。
収束後に変動を緩やかにする手法は、他のゲームでも行われています。
一般的にはグリコレーティングといって、「1500±200に収まるよ」という意味でレーティング偏差(200の値)を用いて補正されます。

天鳳では、レートに関する項はイロレーティングの簡易化した計算式に似ていますが、本質的にはイロレーティングとはまったく異なります。
定数に相手の勝率をかけたものを得失レートとするのがイロレーティングですが、この式は順位補正の寄与が非常に大きく、レートに関する項は順位補正に対する補正という意味合いが強いです。

まとめ

  • イロレーティングは勝敗比に基づいた数学的裏付けのあるレーティングシステム
  • レーティングシステムの基本的な考え方は、レート差に対する勝率設定
  • ゲームの対戦のモデルに合ったレーティングシステムにする
  • 3人以上の対戦システムの場合は、チームの平均や対戦者全体の平均と比較して計算する

参考文献

© 2020 Manicreator