Eloレーティングシステムのペアリングアルゴリズム


7

Google AIチャレンジのようなAIボット間の1対1(チームではない)の競争を想像してみてください。さまざまなボットには、さまざまな対の試合の結果に基づいてELOレーティングが割り当てられます。AIボットは、プレーヤーの疲労や地理位置情報などを考慮せずに24時間365日競争できるため、私がその理由を指定した理由。

サーバーリソースが限られているため、1日に実行できる回数は非常に多いです。次に競合する2つのボットを選択するためのヒューリスティック(または最適なアルゴリズム)を探しています。

過去の大会はすべて追跡されています。これは、アルゴリズムがELOレーティングだけでなく、より多くの作業を行う必要があることを意味します。

私が特に関心を持っているユースケース:

  • 競争はしばらくの間ランダムにペアリングされていましたが、今はインテリジェントなペアリングの決定をしたいと思います。
  • Eloレーティングが安定し、ボットが更新されました。
  • Eloの評価が安定し、新しいボットが競争に導入されました。

更新:
明確にする必要があります。私は公平な一致を提供するアルゴリズムを探していません。ボットのEloレーティングを、一致数が最も少ない「真の」レーティングに更新する可能性が最も高い一致を見つけるアルゴリズムを探しています。


私の知る限り、「本当の」評価というものはありません(私の言葉を信じないでください)。Eloおよびその他の適応型レーティングは、一時的な良好または不良のストリークがプレーヤーのレーティングにほとんど影響しないように開発されたため、時間の経過とともに変化するプレーヤーを対象としています。言い換えると、Eloの評価は静的なものではないため、「真の」評価はありません。ボットの戦いにおいて、Eloの評価があなたが探しているものかどうか、私にはよくわかりません。良い評価値を得るための最良の方法は、可能な限り多くの試合をすることです。

回答:


3

通常のEloシステムを考えると、そのようなことはおそらく存在しません。予想スコアと実際のスコアの差に基づいてスコアが変化するため、同等のスキルを持つ人々をペアにすると、彼らは引き分け(または50%の勝率)になる可能性が高く、変わらないし、完全な反対をペアにした場合、ベテランはほとんどの場合(予想どおり)初心者を倒すため、スコアもそこで変わらない。

あるEloスコアが別のEloスコアよりも正確でなくなる可能性があるのは、より少ない試合をしたことだけです。これは、彼らにもっとプレイしてもらいたいことを意味します。あなたは彼らの実際のスキルレベルについてまだ何も情報を持っていないので、重要なことは彼らが試合に参加してそのレベルを確立し始めることです。

したがって、これらの状況では、ボットができるだけ多くの異なるボットをプレイすることを確認し、以前に競合していないボットを選択し、あまりプレイしていないボットの選択を優先することを選択します。システムに参加する新しいボットは、おおよそのレベルを迅速に確立するために推奨されます。


すばらしい答えです。私は信頼限界についていくつかの数学を望んでいましたが、あなたの常識的な答えは反駁できないです。
deft_code

0

私はあなたがすでに回答をマークしたことを知っていますが、正直なところ、それは過度に単純化されており、ボットと実際のプレイヤーのどちらを扱っているかにかかわらず、ELOシステムの主要な問題には実際には対処していません。たとえば、公平で正確なELOシステムを作成する場合の中心的な考慮事項は、プレーヤーの数、試合の数、結果へのスキルの相対的な影響(つまり、チャンス)、マッチメイキングの効率、および1勝あたりのレーティングの変動です。 /損失。

理想的な世界では、同等のスキルを持つ人々と一致することができ、スキルのゲームでは50%の勝率を達成します。ただし、それはあなたが全員のスキルを知っていて、チャンスの影響が比較的小さいことを前提としています。前者がわからない(そして後者を指定しなかった)ため、効率的な方法でスキルを正確に決定するために実行する必要がある多くのことがあり、ボットをプレイするほど単純ではありません。可能な限り多くの異なるボット:

1)「新規」プレーヤーのスキルのベースラインを設定し、スケールが上下できるようにし、ベースラインが通常のベルカーブの予想平均を表すようにします。IE:1-2500のスケールで1250。

2)新規プレイヤーは、最初のレーティングを確立するために、特定の数の「プレースメント」ゲームをプレイする必要があります。これは通常、後続のゲームよりも高いレーティングの10〜20ゲームで行われます。IE:プレーヤーの迅速な分離を促進するために、プレースメント中のレーティングゲイン/ロスは後の2倍になります。

3)マッチメイキングのその他の要因(合計試合に対する勝率など)を考慮する必要があります。これにより、スキルカーブの極端な端にいるプレイヤーが、より上または下の人と向き合うことで、「真の」スキルに高速で移動します彼らの現在の評価。IE:まともなサンプルサイズを超えて勝率が80%のプレイヤーは、真のスキルに近い勝率が55%のプレイヤーよりも、レーティングを上回り、はしごを早く上る必要があります。

4)チャンスが結果にどのように影響するかを十分に理解している必要があり、スキルの差異を合理的に保つために一致する相手を決定するときは、マッチメイキングの速度(キュー時間)を考慮する必要があります。以前のスケールを使用すると、1250プレーヤーが2000プレーヤーに直面することはありません(両方がレーティングされていない場合を除く)。これは公平な対応ではなく、ELOからポイントを正確に追加/削除することはできません。

私がシステムをセットアップする方法は、ベースポイントのゲイン/ロス値に2つのモディファイアを作成することです。1つは評価の分散に基づく予想結果を使用し、もう1つは合計一致値に対する勝率に基づいています。IE:評価が1500で、勝率が70%で、評価が1600のプレイヤーを上回る人は、勝率が高く、より高いプレイヤーを倒すと、より多くのポイントを獲得できます。

次に、プレイヤーがゲームの妥当なサンプルサイズを完了することを確認するだけでよく、ELOシステムを実装する「ゲーム」に関与する可能性に基づいた「最も効率的な」システムが得られます。比較的低い可能性のあるゲームは、正確になるまでに数十のゲームを必要とする可能性があり、比較的高い可能性のあるゲームは、数百もかかる可能性があります...

PS:記録のために、それはシステムの正確さを薄めるだけなので、劇的に異なるスキルレベルの人々がプレーすることを望まない。一定の差異以上のマッチがほとんど影響を与えないようにスキューしても、プレイヤーは差異が大きいマッチに対して報酬を与えられない、または過度に罰せられるため、問題が発生します。

編集:私はあなたの質問の「すでに評価された」部分に対処するのを忘れていましたが、それはかなり簡単です。キューで利用可能な最も近いスキルレーティングに基づいて人々を照合します。これは、最も均等なマッチであり、ポイントの増減(同様の勝率を想定)が静的な値になるためです。プレイヤーが正確に評価された場合、50%の勝率を維持し、上昇も下降もしません。もし彼らがない場合は、よりスキルの高いプレーヤーが失うよりも勝ち、レーティングが更新されます。

新しいプレーヤーの導入はさらに簡単です。ベースラインから始めて、配置が完了するまで、そのスキルのプレーヤーと(ゲイン/ロスが増加した)マッチングを行います。したがって、マッチごとの通常のポイントゲイン/ロスが修飾子なしで15であると仮定します。ここでは、新しいプレーヤーの配置と評価(ダブルゲイン/ロスあり)の例を示します。

  • 初期:0-0(1250)-1250対戦相手
  • 負け:0-1(1220)-1220対戦相手
  • 敗北:0-2(1190)-1190対戦相手
  • 勝利:1-2(1220)-1220対戦相手
  • 勝利:2-2(1250)-1250対戦相手
  • 勝利:3-2(1280)-1280対戦相手
  • 勝利:4-2(1310)-1310対戦相手
  • 敗北:4-3(1280)-1280対戦相手に直面
  • 勝利:5-3(1310)-1310対戦相手
  • 勝利:6-3(1340)-1340対戦相手
  • 勝利:7-3(1370)
  • 最終評価:1370
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.