(57)【要約】  コンピュータゲーム、チェス、テニス、および任意の他の適した種類のゲームのようなゲームのプレイヤの相対的スキルの決定方法を提供したいという要望がある。我々の先願のベイジアンスコアリングシステムをＸｂｏｘ  Ｌｉｖｅ「商標」で実装しており、現在は商号ＴｒｕｅＳｋｉｌｌ「商標」の下で商用的に利用可能である。本発明では我々の以前の取り組みを基礎とし、処理時間を大幅に削減可能な新規の計算方法を使用する。更新したスキル確率の計算を複数のプレイヤから成る複数のチームの場合でも迅速に取得できるように、メッセージパッシング技術を適合させる。
2009525807.tif 000002
【特許請求の範囲】
【請求項１】
ゲームの少なくとも第１のプレイヤおよび第２のプレイヤの相対的スキルの表示を、それらのプレイヤが関与する１つまたは複数の前記ゲームの結果に基づいて決定する方法であって、
（１）それぞれのプレイヤに対して、そのプレイヤのスキルに関する確率に関連付けた確率分布を記述する統計値にアクセスするステップと、
（２）前記ゲームの１つの結果に関する情報を受信するステップと、
（３）ノードを備えるファクタグラフを形成するステップであって、前記グラフを前記結果に関する前記受信情報を用いて形成し、前記ノードの少なくともいくつかを前記統計値でインスタンス化するステップと、
（４）それぞれのプレイヤに関連付けた前記統計値を、前記ファクタグラフ上のメッセージパッシング技術を用いて更新するステップと
を備えることを特徴とする方法。
【請求項２】
前記統計値はそれぞれの確率分布を記述する少なくとも平均および分散を備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記確率分布はガウス分布であることを特徴とする請求項１または２に記載の方法。
【請求項４】
前記ファクタグラフは非巡回であることを特徴とする任意の先行請求項に記載の方法。
【請求項５】
前記ファクタグラフに適用した前記メッセージパッシング技術を配置して、ベイズ推論プロセスを実行することを特徴とする任意の先行請求項に記載の方法。
【請求項６】
前記ファクタグラフは複数のノードグループを備え、それぞれのグループを特定のプレイヤに関連付け、前記のそれぞれのグループは直列に接続したノードを備えることを特徴とする任意の先行請求項に記載の方法。
【請求項７】
前記ファクタグループは複数の第２のノードグループを備え、それぞれの第２のグループをプレイヤチームに関連付けることを特徴とする任意の先行請求項に記載の方法。
【請求項８】
前記ノードグループを端で接続し、前記接続順序は前記ゲーム結果を反映することを特徴とする請求項６または７に記載の方法。
【請求項９】
前記ノードグループをさらに、前記プレイヤが参加しているチームを基に前記ファクタグラフ内で順序付けすることを特徴とする請求項８に記載の方法。
【請求項１０】
３人以上のプレイヤが関与するゲームからプレイヤの前記相対的スキルの表示を決定することを特徴とする任意の先行請求項に記載の方法。
【請求項１１】
前記ゲーム結果に関する情報は、それぞれのプレイヤに対して、前記ゲームにそのプレイヤが参加した時間の表示をさらに備え、前記統計値を前記情報を基に更新することを特徴とする任意の先行請求項に記載の方法。
【請求項１２】
前記ゲーム結果に関する情報はプレイヤの部分的ランキングを備え、前記部分的ランキングは、複数の他のプレイヤと比較して少なくとも１人のプレイヤに対する順序情報を備え、前記複数の他のプレイヤの順序情報は備えず、前記ファクタグラフを、前記の少なくとも１人のプレイヤに関連付けたノードと前記の他のプレイヤの各々に関連付けたノードとの間でリンクが作成されるように形成することを特徴とする任意の先行請求項に記載の方法。
【請求項１３】
コンピュータ上での実行時に任意の先行請求項の全ステップを実行するよう適合させたコンピュータプログラムコード手段を備えることを特徴とするコンピュータプログラム。
【請求項１４】
コンピュータ可読媒体上に具現化されることを特徴とする請求項１３に記載のコンピュータプログラム。
【請求項１５】
ゲームの少なくとも第１のプレイヤおよび第２のプレイヤの相対的スキルの表示を、それらのプレイヤが関与する１つまたは複数の前記ゲームの結果に基づいて決定する装置であって、
（１）それぞれのプレイヤに対して、そのプレイヤのスキルに関する確率に関連付けた確率分布を記述する統計値にアクセスするよう配置した入力と、
（２）前記ゲームの１つの結果に関する情報を受信するよう配置した入力と、
（３）ノードを備えるファクタグラフを形成する手段であって、前記グラフを前記結果に関する前記受信情報を用いて形成し、また前記ノードの少なくともいくつかを前記統計値でインスタンス化する手段と、
（４）それぞれのプレイヤに関連付けた前記統計値を、前記ファクタグラフ上のメッセージパッシング技術を用いて更新するよう配置した１つまたは複数のプロセッサと
を備えることを特徴とする装置。
【請求項１６】
前記ファクタグラフは非巡回であることを特徴とする請求項１５に記載の装置。
【請求項１７】
前記ファクタグラフに適用した前記メッセージパッシング技術を配置して、ベイズ推論プロセスを実行することを特徴とする請求項１５および１６のいずれかに記載の装置。
【請求項１８】
前記ファクタグラフは複数のノードグループを備え、それぞれのグループを特定のプレイヤに関連付け、前記のそれぞれのグループは直列に接続したノードを備えることを特徴とする請求項１５から１７のいずれかに記載の装置。
【請求項１９】
前記ファクタグラフは複数のノードグループを備え、それぞれのグループをプレイヤチームに関連付けることを特徴とする請求項１５から１８のいずれかに記載の装置。
【請求項２０】
前記ノードグループを端で接続し、結果生じる順序は前記ゲーム結果を反映することを特徴とする請求項１８または１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本説明は一般に、コンピュータゲームまたは任意の他種類のゲームのようなゲームのプレイヤの相対的スキルを決定することに関する。より詳細には、ベイズ統計技術を用いてそれらのプレイヤが関与する複数のゲームの結果を踏まえてプレイヤをランク付けすることに関するが、これに限らない。
【背景技術】
【０００２】
コンピュータゲーム、チェス、テニス、および任意の他種類のゲームのようなゲームのプレイヤの相対的スキルの決定方法を提供したいという要望がある。これを、相対的スキルの表示が可能な限り正確で、かつエンドユーザ（すなわち、ゲームプレイヤ）により理解および受け入れられるような方法で実現する必要がある。加えて、相対的なスキルを、多数のプレイヤが関与するゲームの場合でも、およびさらにそれぞれのチームが多数のメンバを有する多数のプレイヤチームの場合でも、迅速に決定する必要がある。これは、これらの状況では計算量が一般に大幅に増加するので特に問題である。プレイヤは人間のプレイヤまたはコンピュータプログラムであることができる。
【０００３】
我々の先願特許である「特許文献１」では、ゲームの結果に基づいてプレイヤのスキルをランク付けする、またはプレイヤのスキルの表示を決定するシステムを説明している。スキルレベルを使用してゲーム環境におけるプレイヤの進捗および／または位置を追跡することができ、ならびに／もしくは将来のゲーム向けにプレイヤを互いと対戦させることができる。我々は、ベイズ統計技術を用いてプレイヤの相対的スキルの表示を決定するシステムを説明する。本発明は我々の以前の取り組みを基礎として拡張し、特に計算時間を削減可能な新規の計算方法を提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
統計的アプローチを使用するゲーム向けのランク付けシステムが以前に提示されている。Ａｒｐａｄ  Ｅｌｏが開発したＥＬＯランク付けシステムは、２プレイヤのゲームのみに対して適切である。しかしながら、対戦ごとに３人以上のプレイヤを有するゲームモードで動作するシステムを提供する必要がある。
【０００５】
本発明は、ゲームのプレイヤの相対的スキルの表示の決定に対する改良した方法および装置の提供を図る。その方法および装置は、１つまたは複数の上述の問題を克服または少なくとも軽減する。
【０００６】
【特許文献１】２００５年１月２４日出願、米国特許出願「Ｂａｙｓｉａｎ  Ｓｃｏｒｉｎｇ」明細書
【非特許文献１】Ｐｒｅｓｓ  ｅｔ  ａｌ．，Ｎｕｍｅｒｉｃａｌ  Ｒｅｃｉｐｅｓ  ｉｎ  Ｃ：ｔｈｅ  Ａｒｔ  ｏｆ  Ｓｃｉｅｎｔｉｆｉｃ  Ｃｏｍｐｕｔｉｎｇ（２ｄ．ｅｄ．），Ｃａｍｂｒｉｄｇｅ，Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，ＩＳＢＮ−０−５２１−４３１０８−５
【課題を解決するための手段】
【０００７】
以下で、本開示の簡潔な要約を提示し、読者に基本的な理解を与える。本要約は本開示の広範的な概要ではなく、本発明の主要／重要な要素を特定せず、または本発明の範囲を区別しない。本要約の唯一の目的は、本明細書で開示したいくつかの概念を、後に提示するより詳細な説明に対する前置きとして簡潔な形で提示することである。その例は、ゲームの少なくとも第１のプレイヤおよび第２のプレイヤの相対的スキルの表示を、それらのプレイヤが関与する１つまたは複数の上記ゲームの結果に基づいて決定する方法を提供する。上記の方法は、
それぞれのプレイヤに対して、そのプレイヤのスキルに関する確率に関連付けた確率分布を記述する統計値にアクセスするステップ、
１つのゲームの結果に関する情報を受信するステップ、
ノードを備えるファクタグラフを形成するステップであって、そのグラフを上記の結果に関する受信情報を用いて形成し、上記ノードの少なくともいくつかを上記の統計値でインスタンス化するステップ、および
それぞれのプレイヤに関連付けた上記の統計値を、上記のファクタグラフ上のメッセージパッシング技術を用いて更新するステップ
から成るステップを備える。
【０００８】
対応する装置を提供する。その装置は、ゲームの少なくとも第１のプレイヤおよび第２のプレイヤの相対的スキルの表示を、それらのプレイヤが関与する１つまたは複数の上記ゲームの結果に基づいて決定する。上記の装置は、
それぞれのプレイヤに対して、そのプレイヤのスキルに関する確率に関連付けた確率分布を記述する統計値にアクセスするよう配置した入力、
１つのゲームの結果に関する情報を受信するよう配置した入力、
ノードを備えるファクタグラフを形成する手段であって、そのグラフを上記の結果に関する受信情報を用いて形成し、上記ノードの少なくともいくつかを上記の統計値でインスタンス化する手段、および
それぞれのプレイヤに関連付けた上記の統計値を、上記のファクタグラフ上のメッセージパッシング技術を用いて更新するよう配置した１つまたは複数のプロセッサ
を備える。
【０００９】
上記の統計値は、それぞれの確率分布を記述する少なくとも平均および分散を備えることが望ましい。
【００１０】
上記の確率分布はガウス分布であることが望ましい。
【００１１】
上記のファクタグラフは非巡回であることが望ましい。
【００１２】
上記のファクタグラフは２種類のノードから成り、２部グラフであることが望ましい。
【００１３】
上記のファクタグラフ上で適用したメッセージパッシング技術を配置して、ベイズ推論プロセスを十分に実施すると都合が良い。
【００１４】
好適な例では、上記のファクタグラフは複数のノードグループを備え、それぞれのグループを特別なプレイヤに関連付け、そのそれぞれのグループは直列に接続したノードを備える。別の例では、上記のファクタグラフは複数の第２のノードグループを備え、それぞれの第２のグループをプレイヤチームに関連付ける。
【００１５】
例において上記の方法はゲームの３人以上のプレイヤの相対的スキルの表示を決定する。
【００１６】
いくつかの例では、ゲームの結果に関する情報はさらに、それぞれのプレイヤに対して、そのゲームへのそのプレイヤの参加時間の表示を備え、上記の統計値をその情報を基に更新する。
【００１７】
いくつかの例では、ゲームの結果に関する情報は部分的なプレイヤランキングを備え、その部分的なランキングは、少なくとも１人のプレイヤに対するランクを備え、複数の他のプレイヤに対するランク情報は備えず、ランク付けしたプレイヤに関連付けたノードとランク付けしていないプレイヤの各々に関連付けたノードとの間のリンクを作成するように上記のファクタグラフを形成する。
【００１８】
上記の例はコンピュータプログラムも含む。そのコンピュータプログラムは、そのプログラムをコンピュータ上で実行するときに任意の上記方法の全ステップを実行するよう適合させたコンピュータプログラムコード手段を備える。上記のコンピュータプログラムをコンピュータ可読媒体上で具現化することができる。
【００１９】
上記の方法を、記憶媒体上で機械可読形態のソフトウェアにより実行することができる。そのソフトウェアは、上記の方法のステップを任意の適切な順序、または同時に実行できるように、並列プロセッサまたは直列プロセッサ上での実行に適していることができる。
【００２０】
これは、ソフトウェアが貴重で別々に取引可能な商品であることを認めている。「ダム」または標準的なハードウェア上で実行またはそれらを制御するソフトウェアを網羅して、所望の機能を実行することを意図している（および従ってソフトウェアは本質的にレジスタ機能を定義し、従ってそれを標準的なハードウェアと結合する前でも、レジスタと称することができる）。同様な理由で、シリコンチップの設計、またはユニバーサルプログラマブルチップの構成に使用されるように、ＨＤＬ（ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）ソフトウェアのような、ハードウェア構成を「記述」または定義するソフトウェアを網羅して所望の機能を実行することも意図している。
【００２１】
付随する特徴の多くは、付属図面と関連して考慮した以下の詳細な説明を参照することでより容易に理解され、より良く理解されるであろう。
【００２２】
付属図面と照らし合わせて以下の詳細な説明を読むと、本発明はより良く理解されるであろう。
【００２３】
付属図面では同じ参照番号を使用して同じ部分を指定する。
【発明を実施するための最良の形態】
【００２４】
付属図面と関連して以下で与える詳細な説明は本例の説明として意図してあり、本例を構築または利用可能である唯一の形態を表すことは意図していない。本説明は、上記の例の機能、および上記の例を構築または操作するステップの順序を説明する。しかしながら、同一または等価な機能および順序を、異なる例により実現してもよい。
【００２５】
我々の先願のベイジアンスコアリングシステムをＸｂｏｘ  Ｌｉｖｅ「商標」で実装しており、現在は商号ＴｒｕｅＳｋｉｌｌ「商標」の下で商用的に利用可能である。本発明は我々の以前の取り組みを基礎として拡張し、新規の計算方法を使用して処理時間を大幅に削減させることができる。現在利用可能なＴｒｕｅＳｋｉｌｌシステムの要約を与えて本発明の理解を支援する。
【００２６】
ほとんどのゲームはその根源において、ゲームの目標が満たされたかどうかを判定する基準を有する。２人以上のプレイヤが関与する対戦（「マルチプレイヤ対戦」）の場合、これは対戦参加者のスキルをランク付けする方法を含むことがよくある。これにより、プレイヤ間の競争に、両者が個々の対戦に「勝利」するよう促し、彼らの全体のスキルレベルをより広範囲のコミュニティに理解および認識させることを促す。プレイヤは、自分の知っている人々と比較した自分のスキル、または自分がプレイしたことのない潜在的な相手と比較した自分のスキルを評価して、その結果面白い対戦を用意できることを望むかもしれない。参加プレイヤに対する勝利の可能性が非常に不均衡である場合、すなわち、勝利または敗北の可能性がない対戦のプレイを楽しむ人がほとんどいない場合、我々は対戦を「面白くない」と称する。反対に、任意の参加者が勝利する可能性が相対的に等価である対戦を「面白い」対戦とみなす。
【００２７】
ＴｒｕｅＳｋｉｌｌランキングシステムは、プレイヤのランク付けに対してベイズ推論と呼ばれる技術を使用するスキルベースのランキングシステムである。
【００２８】
それぞれのプレイヤに対して単一の固定スキルを仮定するのではなく、上記のシステムは、その平均μおよび標準偏差σにより一意に記述されるベルカーブ確率分布（ガウス分布とも呼ばれる）を用いてその確率を特徴づける。例示的な確率分布を図１に示す。或る特定の範囲内にあるスキル確率分布曲線の領域は、プレイヤのスキルがその範囲にあるという確率に対応することに留意されたい。例えば、図１内の影領域は、プレイヤのスキルがレベル１５から２０の間にあるという確率を表す。システムがプレイヤのスキルに関してさらに学習すると、σはより小さく、そのプレイヤのスキルの範囲をより狭めるものとなる傾向がある。μおよびσの値の別の考え方は、それらを「平均的なプレイヤスキルの確率」およびそのスキルの調査に関連付けた「不確実性」と見なすことである。
【００２９】
ＴｒｕｅＳｋｉｌｌランキングシステムはガウス確率分布を使用してプレイヤのスキルを特徴づけるので、全ての平均的なスキル（すなわち、のμの値）は常にσの初期値の±４倍（より正確には９９．９９％の確率）の内部にある。
【００３０】
ＴｒｕｅＳｋｉｌｌランキングシステムは初期値１の不確実性を用いて全ての計算を行うことができる。なぜならば、μおよびσを、単純にそれらを掛け合わせることで任意の他の範囲に拡大できるからである。例えば、全ての計算を初期値３のμおよび初期値１のσで行うとする。プレイヤのスキルを５０個の「レベル」のうち１つとして表現したい場合、殆ど全てのμがたまたまσの初期値の±３倍の内部にあるので、μおよびσに５０／６＝８．３を掛ける。
【００３１】
意図は、σの値が同様だと仮定して２プレイヤのμ値の間の差分が大きくなれば、より高いμ値を有するプレイヤのゲームにおけるパフォーマンスがより良い可能性が高くなる。本原理はＴｒｕｅＳｋｉｌｌランキングシステムで当てはまる。しかし、これはより大きなμ値を有するプレイヤが常に勝利すると期待されることを意味するのではなく、そのプレイヤが勝利する可能性が、より小さなμ値を有するプレイヤが勝利する可能性よりも高いことを意味する。ＴｒｕｅＳｋｉｌｌランキングシステムは、１つの対戦におけるパフォーマンスがプレイヤのスキルで変化すると仮定し、ゲームの結果（ゲームに参加する全てのプレイヤの相対的なランキング）がそのプレイヤのパフォーマンスにより決定されると仮定する。従って、ＴｒｕｅＳｋｉｌｌランキングシステム内のプレイヤのスキルを、多数のゲームに対するプレイヤの平均的なパフォーマンスと考えることができる。スキルでのパフォーマンスの変化は、原則として、ＴｒｕｅＳｋｉｌｌランキングシステムの構成可能なパラメータである。
【００３２】
ＴｒｕｅＳｋｉｌｌランキングシステムはμおよびσの更新の基礎をゲームの結果（全チームの相対的なランキング）のみに置く。ＴｒｕｅＳｋｉｌｌランキングシステムは単純に、結果はプレイヤのスキルで変化するいくつかの未観測のパフォーマンスに起因すると仮定する。ポイントベースのゲームをプレイしていて、勝者が全ての他のプレイヤを１０倍負かす場合、そのプレイヤの勝利は、そのプレイヤが１点だけ勝利した場合と変わらないスコアである。全ての対戦はシステムにそれぞれのプレイヤのスキル確率に関するさらなる情報を提供し、通常はσを押し下げる。
【００３３】
新規ゲーム結果に対する全ての参加プレイヤの新規スキル確率を決定し始める前に、ＴｒｕｅＳｋｉｌｌランキングシステムはそれぞれのプレイヤのスキルが、それぞれのプレイヤがプレイした現在と最後のゲームとの間で少々変化している可能性があると仮定する。上記の仮定を行う数学的な結果として、スキル不確実性σが少々増加することとなり、その量は原則として、ＴｒｕｅＳｋｉｌｌランキングシステムの構成可能なパラメータである。ＴｒｕｅＳｋｉｌｌシステムが長期に渡ってゲームのスキル向上を追跡することを可能とし、かつスキル不確実性σが決して零に減少しない（「モメンタムを維持する」）ことを保証するのはこのパラメータである。
【００３４】
新規ゲーム結果に対する全ての参加プレイヤの新規スキル確率を決定するため、ＴｒｕｅＳｋｉｌｌランキングシステムは、参加プレイヤの所与のスキルに対して観測したゲーム結果の確率を決定し、その確率に対し、対応するスキル確率の確率で重み付けする必要がある。これを、全ての可能なパフォーマンスを（その確率で重み付けして）平均化し、そのパフォーマンスからゲーム結果を導出することで行う。すなわち、最高パフォーマンスを有するプレイヤが勝者であり、２番目に高いパフォーマンスを有するプレイヤが第１の準優勝者である、等である。２人のプレイヤのパフォーマンスが非常に近い場合、ＴｒｕｅＳｋｉｌｌランキングシステムはこれら２人のプレイヤ間の結果を引き分けと考える。ＴｒｕｅＳｋｉｌｌランキングシステムによると、所与のリーグにおいて引き分けを定義するマージンが大きければ大きいほど、引き分けが発生する可能性が高くなる。このマージンのサイズはＴｒｕｅＳｋｉｌｌランキングシステムの構成可能なパラメータであり、ゲームモードに基づいて調整する。例えば、Ｐｒｏｊｅｃｔ  Ｇｏｔｈａｍ  Ｒａｃｉｎｇ３「商標」でのストリートレースは決して引き分けに終わらず（従って、上記のパラメータは０に設定される）、Ｐｅｒｆｅｃｔ  Ｄａｒｋ  Ｚｅｒｏ「商標」でのＣａｐｔｕｒｅ−ｔｈｅ−Ｆｌａｇゲームは簡単に引き分けに終わる可能性がある。
【００３５】
（ベイズの法則に基づく）上記重み付け技術のおかげで、システムはゲームに参加する全てのプレイヤに対して新規スキル確率に到達する。これらのスキル確率はもはやガウス分布ではない。従って、ＴｒｕｅＳｋｉｌｌランキングシステムは最良のガウス近似を決定する。結果として、所与のプレイヤのμ値はそのプレイヤが優位であったそれぞれの相手に対して増加し、そのプレイヤが敗北したそれぞれの相手に対して減少する。
【００３６】
ＴｒｕｅＳｋｉｌｌランキングシステム更新に対する最も単純なケースは、２人による対戦である。プレイヤＡ（アリス）とＢ（ボブ）がいて、それぞれのμおよびσの値はそれぞれ（μＡ、σＡ）および（μＢ、σＢ）であるとする。ゲームを終了すると、更新アルゴリズムは勝者（アリスまたはボブ）および敗者（ボブまたはアリス）を決定し、以下の更新式を適用する。
【００３７】
【数１】
2009525807.tif 000003
【００３８】
【数２】
2009525807.tif 000004
【００３９】
【数３】
2009525807.tif 000005
【００４０】
【数４】
2009525807.tif 000006
【００４１】
【数５】
2009525807.tif 000007
【００４２】
これらの式において唯一未知であるのはβ２である。β２はそれぞれのプレイヤの、スキルでのパフォーマンス分散である。さらに、εは、ゲームモードに依存する前述の引き分けマージンである。関数Ｖ（．，．）およびＷ（．，．）は以下で与える。
ゲームが勝利または敗北で終わる場合、
【００４３】
【数６】
2009525807.tif 000008
【００４４】
【数７】
2009525807.tif 000009
【００４５】
またはゲームが引き分けで終わる場合
【００４６】
【数８】
2009525807.tif 000010
【００４７】
【数９】
2009525807.tif 000011
【００４８】
である。ここで、記号ＮおよびΦはそれぞれ、ガウス分布関数の密度、およびガウス累積
分布関数を表す。記号ｔおよびαは単純にその関数に対する引数である。任意の適切な数値的方法または分析方法を使用して、「非特許文献１」で説明されるもののような関数を評価することができる。数値積分を用いて得たこれらの関数の、可変値ε／ｃ記号に対するプロットを図２から５に与える。
【００４９】
これらの更新式に関する２、３の所見がある。
【００５０】
・ＥＬＯシステムと同様に、平均スキル更新式において勝者は平均スキルにｖ（（μｗｉｎｎｅｒ−μｌｏｓｅｒ）／ｃ、ε／ｃ）の倍数を加えたものを得、敗者は平均スキルからｖ（（μｗｉｎｎｅｒ−μｌｏｓｅｒ）／ｃ、ε／ｃ）の倍数を引いたものを得る。重みファクタは大まかに、不確実性の総和に対する勝者／敗者の不確実性に比例する（２β２はスキルでのパフォーマンス変化による不確実性であり、
【００５１】
【数１０】
2009525807.tif 000012
【００５２】
は真のスキルに関する不確実性である）。従って、平均スキルに対するＴｒｕｅＳｋｉｌｌランキングシステムの更新式は零和になるとは保証されないことに留意されたい。
【００５３】
・両方のプレイヤの不確実性は（勝利／敗北／引き分けに関わらず）、ファクタ    
【００５４】
【数１１】
2009525807.tif 000013
【００５５】
だけ減少することになる。再度、高い不確実性を有するプレイヤは大幅な減少を被る。
【００５６】
・平均スキルにおける変化、ｖ（μｗｉｎｎｅｒ−μｌｏｓｅｒ）／ｃ，ε／ｃ）、および不確実性における減少ファクタ
【００５７】
【数１２】
2009525807.tif 000014
【００５８】
は、ゲームの結果が驚くべきものでなかった場合は零に近い。
【００５９】
○勝利／敗北  勝者が全体の不確実性に対して非常に大きな平均スキルを有した場合（従って、（μｗｉｎｎｅｒ−μｌｏｓｅｒ）＞ε）、勝利しても勝者に追加の平均スキルポイントを与えることはできず、またはどの不確実性も除去することができない。ゲームの結果が驚くべきものであった場合はその反対が真である。すなわち、勝者がより小さな平均スキルを有した場合（（μｗｉｎｎｅｒ−μｌｏｓｅｒ）＜ε）、μｗｉｎｎｅｒ−μｌｏｓｅｒに比例する平均ポイントを勝者に追加するか、または敗者から差し引く。
【００６０】
○引き分け  両方のプレイヤが予め同様な平均スキルを有した場合（従って、｜μｗｉｎｎｅｒ−μｌｏｓｅｒ｜＜ε）、両方のプレイヤは既に十分に接近しており、平均スキルポイント更新を行う必要はない。従って、不確実性は軽減されない。しかしながら、ゲームの前にＴｒｕｅＳｋｉｌｌランキングシステムにより一方のプレイヤの方が非常に強いと考えられた場合（例えば、μｗｉｎｎｅｒ−μｌｏｓｅｒ）＞ε）、そのプレイヤの平均スキルを減少させ、他のプレイヤの平均スキルを増加させて、実質的にその２つの平均スキルを接近させる。
【００６１】
チーム対戦の場合、チームのスキルはプレイヤのスキルの関数であると仮定する。好適な実施形態では、この関数は和である。そのアルゴリズムは２チームのスキルの和を決定し、上の２つの式を使用する。この場合、
【００６２】
【数１３】
2009525807.tif 000015
【００６３】
および
【００６４】
【数１４】
2009525807.tif 000016
【００６５】
はそれぞれ、勝者チームおよび敗者チームの平均スキルおよびスキル分散である。
【００６６】
３チーム以上に対する更新式では数値積分が必要である。この場合、ＴｒｕｅＳｋｉｌｌランキングシステムは隣接するランク上の全チーム間で、すなわち、１番対２番のチーム、２番のチーム対３番のチーム、等で２チーム更新式を繰り返す。ＶおよびＷ関数に必要な数値積分の結果、３チーム以上に対して計算の複雑性は立方的に増加する。本発明では、メッセージパッシング技術でファクタグラフを用いてこれを解決するよう取り組み、多チームの状況で必要な計算を削減する。
【００６７】
図６を参照する。ゲームのプレイヤの相対的スキルの表示を決定する我々の方法の例を説明する。その方法は、それぞれのプレイヤに対して、確率分布を記述する統計値（図６の囲み６０を参照）にアクセスすることを含む。その確率分布はそれ自身、そのプレイヤのスキルに関する我々の確率を記述する。好適な実施形態では、我々は１次元ガウス分布を使用してスキルの確率を表す。例えば、図１は上述したガウス分布の例を示す。ガウス分布を使用することで我々は、上述のように上記の分布を２つの統計値、平均および標準偏差により一意に記述できるという利点を実現する。加えて、２つのガウスランダム変数の和はそれ自身、我々の計算を簡略化可能とするガウスランダム変数である。しかしながら、スキルの確率を表すためにガウス分布を使用することは本質的ではない。
【００６８】
プレイヤが前にプレイしたことがある場合、および我々がそのプレイヤに対するスキル情報を格納したことがある場合、その情報にアクセスする。新規プレイヤの場合、我々は関連するデフォルトの統計値、例えば初期値３のμおよび初期値１のσでのデフォルトの確率分布を使用する。任意の適切なデフォルトの確率分布が使用される。
【００６９】
ゲーム結果に関する情報を取得し（図６の囲み６５を参照）、これを使用してファクタグラフ（囲み６１を参照）を統計値とともに形成する。ファクタグラフは特定のプレイヤに関連付けたノードを備え、それらのノードを任意のチームおよびゲームの結果を基に順序付けする。ファクタグラフのノードの一部を、アクセスした統計情報（囲み６２を参照）でインスタンス化する。次いでメッセージパッシングをファクタグラフ上で実施して、ベイズ推論を用いてその統計値を更新する（囲み６３を参照）。結果の更新統計値はプレイヤの相対的スキルの我々の確率を記述し（囲み６４を参照）、そのプロセスをさらなるゲームに対して繰り返すことができる。
【００７０】
ファクタグラフの形成プロセスに関するさらなる詳細を、図７を参照して与える。ファクタグラフはリンク７１で接続したノード７０を備える。ノードは可変ノード（円）またはファクタノード（長方形）のいずれかである。可変ノードは記憶位置を表し、ファクタノードは計算ユニットを表す。ファクタノードは、後述の計算規則に従ってそれらの隣接する可変ノードに対して情報を読み書きする。
【００７１】
それぞれのプレイヤを、特定のゲームにおけるそのプレイヤのスキルおよびパフォーマンスに関連する一連のノードに接続した、そのプレイヤのスキルに対する可変ノードで表す。図７において、これらのノードをそれぞれのプレイヤに対して１つの列で示し、同一チーム上のプレイヤは隣接する列内にノードを有する。図７に示す例では４つのチームを表してあり、勝利したチームが１人のプレイヤを有し、そのページの左側の列７２で表す。第２位のチーム７３は３人のプレイヤを備え、第３位のチーム７４は２人のプレイヤを備え、最下位のチーム７５は４人のプレイヤを備える。
【００７２】
図７に示すように、ファクタグラフは非巡回であることが好ましい。ファクタグラフは２種類のノード、可変ノードおよびファクタノードを備え、２部グラフであることが望ましい。
【００７３】
図の上端にあるファクタノード（行７６）は、データベースまたは他のストアにアクセスしてそれぞれのプレイヤに対する確率分布を得る関数である（または新規プレイヤの場合はデフォルトの確率分布を使用する）。これらの計算ユニットは、プレイヤのスキル確率分布を記述するパラメータを、対応する可変ノードに送り込む。例えば、ガウス分布の場合は、それぞれの可変ノードに格納される２つのパラメータ（２つの浮動小数点数）があるであろう。可変ノードの次の行、すなわち、上端のリーフノードに直列して接続させた円形ノード７７はプレイヤスキルを表す。これらのノードはそれぞれ、関連するプレイヤに対する確率分布を記述する統計値を格納する。ファクタノードの次の行は計算ユニット７８である。計算ユニット７８は、本例では、プレイヤスキルにノイズを加えたものを基にプレイヤパフォーマンスを計算する。すなわち、分散パラメータを増加させることでユニット７７のスキル確率分布を修正し、結果を、プレイヤパフォーマンスを表す可変ノード７９の行に格納する。これは決定性計算であるが、根底のランダム変数にノイズを加えるものとして考えることができる。
【００７４】
個々のプレイヤパフォーマンスと対照的にチームパフォーマンスの表現を得るため、列を図７に示すように結合する。例えば第２位のチームの場合、このチームは３人のプレイヤを有する。このチームのパフォーマンスを３人のプレイヤのパフォーマンスの和と捉え、これを行８０内の長方形ノードで示す。その計算結果を行８１内の円形ノードに格納する。従って行８１内には、プレイヤ毎に１つのノードではなくチーム毎に１つのノードがある。ガウス分布を使用する場合、総和プロセスの結果もガウス分布である。
【００７５】
図７に示す好適な実施形態では、ノイズをそれぞれの個々のプレイヤに追加し、次いでプレイヤパフォーマンスを結合してチームパフォーマンスを形成する。しかしながら、これは本質的ではない。プレイヤスキルを最初に結合してチームスキルを得て、次いでノイズをチームスキルに追加してチームパフォーマンスを得ることも可能である。ノイズを個々のプレイヤパフォーマンスおよび／または結合したチームパフォーマンスに追加することができる。
【００７６】
チームパフォーマンスの差分を行８２内のノードで表し、示すようにそれぞれをチームパフォーマンス層８１内の或る特定のノード間の差分として計算する。ゲームの結果がチームの全体の順序を与える場合、その順序内の連続するチーム間の差分を計算する。チーム間で引き分けの場合、引き分けたチームをそれらの間の任意の順序で配置し、差分をその順序における連続するチーム間で計算する。例えば図７において、ここでのゲーム結果が、中間の２つのチーム７３、７４が引き分けたようなものであった場合、それらの２チームを表すノードを入れ替えて等しく妥当なファクタグラフを生成することができる。行８３内の円形ノードはチームパフォーマンスの差分計算の結果を表す。ガウス分布を使用する場合、差分プロセスの結果もガウス分布である。
【００７７】
グラフ内の下端ノードは、チームパフォーマンスの差分が引き分けマージンεよりも大きく（引き分けなしの場合）、または絶対値での引き分けマージン未満である（引き分けの場合）よう促す計算プロセスを表すファクタノードである。これを図８に関してより詳細に説明する。
【００７８】
図８は、例えば図７の行８３にあるノードで利用可能なチームパフォーマンスの差分に対する確率分布の例を表すガウス分布（実線の曲線９１で示す）を示す。このガウス分布を、インジケータ関数により図８内の点線９０により示すものに変換する。このインジケータ関数はチームパフォーマンスの差分が引き分けマージンより大きくなるよう促す。ガウス分布９１はネガティブ領域９２に伸びる裾を有し、その変換によりネガティブ領域において非常に小さい裾のみを有するガウス分布９０を生成する。変換したガウス分布は初期分布９１より狭い。すなわち、より小さな偏差を有し、その平均も高い。
【００７９】
メッセージパッシングのプロセスは、隣接する可変ノードからの分布パラメータを用いた計算ノード（図７の四角形ノード）に関連付けた計算の実行、および隣接する可変ノードの１つ（図７の円形ノード）に結果を渡すことを備える。結果を渡す方向（処理スケジュールとも称する）をさらに詳細に説明する。
【００８０】
処理スケジュールを３段階、すなわち、前処理、連鎖処理、および後処理に分割することが好ましい。前処理スケジュールの例を図９に示す。上端のファクタノード（行７６）から開始して、スキル分布をデータベースから取得するか、またはデフォルト値に設定し、計算はチームパフォーマンスの行（行８１）に到達するまでそれぞれの列に沿って下方に進む。後処理スケジュールは前処理スケジュールの逆であるが、行７７内のプレイヤスキルで停止する。
【００８１】
前処理の１ステップの後、連鎖処理スケジュールを、確率分布の変化が止まるまで繰り返す。連鎖スケジュールの例を、点線矢印を用いて図８に示す。その連鎖スケジュールの例は、パフォーマンス確率分布を、全てのパフォーマンスの差分が下端のファクタノードが課す条件を満たすまでチーム間で往復して渡す。後処理段階はパフォーマンス分布を上方に渡して新規のプレイヤスキルを取得する。処理スケジュール内のそれぞれの矢印は自明でない計算を表し、それらの計算の詳細を以下で与える。図７で与える例では、全てのファクタノード（四角形の計算ノード）は、それらを最後のインジケータ関数ノード（順序ファクタノードと称する）を除いて正確に計算できるので、厳密なファクタノードである。順序ファクタノードは順序制約を実装し、これらのノードに対して関連する更新式は真のファクタ‐変数メッセージがもはやガウス分布でないので厳密ではない。
【００８２】
メッセージパッシングプロセスにおいて矢印に沿った計算の実行に使用する一般的な更新式を提示する。我々は、示したガウス分布で使用するためのそれらの一般的な更新式を調整する。
【００８３】
ガウスメッセージでのファクタノード更新
図１０のファクタグラフを考える。
【００８４】
メッセージｍｆ→ｘおよび限界ｐｘを更新したいとする。すると、一般的な更新式は次のようになる。
【００８５】
【数１５】
2009525807.tif 000017
【００８６】
【数１６】
2009525807.tif 000018
【００８７】
【数１７】
2009525807.tif 000019
【００８８】
【数１８】
2009525807.tif 000020
【００８９】
ここで、ＭＭ［・］は、引数と同じモーメントを有するガウスファミリー（Ｇａｕｓｓｉａｎ  ｆａｍｉｌｙ）内の分布を返し、右辺の全ての量を分布になるように正規化する。次式で、我々はガウス分布の指数表現を使用する。すなわち、
【００９０】
【数１９】
2009525807.tif 000021
【００９１】
である。
【００９２】
この密度は標準密度に対して次の関係を有する。
【００９３】
【数２０】
2009525807.tif 000022
【００９４】
、あるいは  
【００９５】
【数２１】
2009525807.tif 000023
【００９６】
厳密なファクタノードの場合、更新式を以下の表で与える。
【００９７】
【表１】
2009525807.tif 000024
【００９８】
順序ファクタノードの場合、更新式を次の表で与える。
【００９９】
【表１】
2009525807.tif 000025
【０１００】
上の表で設計した更新式において、ａは重みを表し、好適な例では１に設定する。重みが１ではない状況の例を、部分的プレイという小見出し以下で議論する。また、更新式において、ｖおよびｗは次式で与える関数ｖ（．，．）およびｗ（．，．）に対応する。
ゲームが勝利または敗北で終わる場合、
【０１０１】
【数２２】
2009525807.tif 000026
【０１０２】
【数２３】
2009525807.tif 000027
【０１０３】
ゲームが引き分けで終わる場合
【０１０４】
【数２４】
2009525807.tif 000028
【０１０５】
【数２５】
2009525807.tif 000029
【０１０６】
これらの式は、メッセージパッシングを用いずにＴｒｕｅＳｋｉｌｌの以前の実装においてガウス分布およびガウス累積分布を数値近似することで決定した。
【０１０７】
図９に示す例では、連鎖スケジュールの間のメッセージパッシングは、順序ファクタノード更新式表の第１行の更新式を用いて、行８４内のノードから層８３内のノードへの順序ファクタノード更新を含む。引き分けの場合、チームパフォーマンス差分の係数は、潜在的な引き分け値ε以下に制限され、順序ファクタノード更新式表の第２行の更新式を使用する。
【０１０８】
厳密なファクタノードの場合、計算ノード（四角形ノード）から１つの可変ノード（円形ノード）へのメッセージパッシングに対して、厳密なファクタノード更新式表の第１行の更新式を使用する。計算ノードから２つの可変ノードへのメッセージパッシングの場合、表の第２または第３の行の更新式を必要に応じて使用する。計算ノードから３つの可変ノードへのメッセージパッシングの場合、表の第４または第５の行の更新式を必要に応じて使用する。
【０１０９】
部分的プレイ
部分的プレイの場合、１人または複数人のプレイヤはゲーム継続時間より少ない時間だけゲームに参加する。プレイヤのスキルレベルに関する我々の確率の更新においてこれを考慮するため、上述の更新式における値ａである重み付けを使用する。それぞれのプレイヤがゲームに参加する時間に関する情報を使用すると、プレイヤに対して適切な重み値を設定することが可能である。
【０１１０】
例えば、それぞれ２人のプレイヤを有する２つのチームから成るゲームにおいて、第１のチームの第１のプレイヤは全体のゲーム時間のうち７５％しか参加していないことも可能である。この場合、対応する値は残りの他の３人のプレイヤに対する１．０と比較して０．７５となるであろう。
【０１１１】
部分的ランキング
ゲームの結果、全てのプレイヤ（またはチーム）より１つ以上少ないランクのみが生じる場合、ファクタグラフの構造を修正することでこれを考慮することができる。例えば、モータレーシングゲームでは、第１、第２および第３の参加者のランクのみを知ることができ、任意の他のプレイヤはランクされない。あるいは、勝者を知ることはできるが、他のプレイヤにはランクが提供されない。この場合、我々は、特定の例として図１９に示すようにファクタグラフの構造を修正する。
【０１１２】
図１９は、勝者および第２位のチームは既知だが残りの２チーム１９０、１９１のランクは未知である場合を示す。ファクタグラフは、チームパフォーマンスの差分をチーム１９０と１９１との間ではなく第２位のチームとチーム１９１との間で計算することを除いて、図７と同じである。従って、ファクタグラフは既知のランクのチームに関連付けたノードと未知のランクのチームの各々に関連付けたチームとの間のリンクを備える。図１９の例では、これらは行８２内のノードΔ１およびΔ２の各々に接続した行８１内のノードｔｐ１に対応する。
【０１１３】
任意の適切な装置を使用して本明細書で説明した方法を実装することができる。例えば、図２０はゲームの少なくとも第１のプレイヤおよび第２のプレイヤの相対的スキルの表示を、それらのプレイヤを含む１つまたは複数の上記ゲームの結果に基づいて決定する装置の概略図である。上記の装置は、
・それぞれのプレイヤに対して、そのプレイヤのスキルに関する確率に関連付けた確率分布を記述する統計値２００にアクセスするよう配置した入力２０６、
・１つのゲームの結果２０１に関する情報を受信するよう配置した入力２０７、
・ノードを備えるファクタグラフを形成する手段２０３であって、そのグラフを上記の結果に関する受信情報を用いて形成し、上記ノードの少なくともいくつかを上記の統計値でインスタンス化する手段２０３、および
・それぞれのプレイヤに関連付けた上記の統計値を、上記のファクタグラフ上のメッセージパッシング技術を用いて更新するよう配置した１つまたは複数のプロセッサ２０４
を備える。
【０１１４】
当業者は、プログラム命令の格納に利用する記憶装置をネットワークに渡って分散できることを理解するであろう。例えば、リモートコンピュータは説明したプロセスの例をソフトウェアとして格納することができる。ローカルまたは端末コンピュータはリモートコンピュータにアクセスすることができ、ソフトウェアの一部または全部をダウンロードしてプログラムを実行することができる。あるいは、ローカルコンピュータはソフトウェア部分を必要に応じてダウンロードすることができ、またはいくつかのソフトウェア命令をローカル端末で実行して、いくつかをリモートコンピュータ（またはコンピュータネットワーク）で実行することができる。当業者は、当業者に公知である従来技術を利用することで、ソフトウェア命令の全部または一部をＤＳＰ、プログラマブルロジックアレイ、等のような専用回路により実行できることも理解するであろう。
【０１１５】
本明細書で説明した相対的スキルレベルの計算での使用に適合させたメッセージパッシング技術の使用は、分散処理に特に適合する。これは、ファクタグラフ内の任意の特定のファクタノードに関連付けた処理を所与のプロセッサで実行でき、その結果がグラフ内の他のノードに関連付けた計算を実行する別の独立したプロセッサに渡されるからである。それらの独立したプロセッサを、任意の適切な型の通信ネットワーク上で接続することができ、または互いに統合することができる。
【０１１６】
当業者に明らかなように、本明細書で与えた任意の範囲または装置の値を、求めた効果を失わずに拡張または変更することができる。
【０１１７】
本明細書で説明した方法のステップを必要に応じて任意の適切な順序、または同時に実行することができる。
【０１１８】
当然のことながら、好適な実施形態の上の説明は例として与えたに過ぎず、様々な修正を当業者により行うことができる。
【図面の簡単な説明】
【０１１９】
【図１】スキルの確率を表すために用いるガウス分布の例の図である。
【図２】ゲームが勝ち負けで終了する場合の、様々な引き分けマージンεの値に対する関数Ｖをプロットした図である。
【図３】ゲームが勝ち負けで終了する場合の、様々な引き分けマージンεの値に対する関数Ｗをプロットした図である。
【図４】ゲームが引き分けで終了する場合の、様々な引き分けマージンεの値に対する関数Ｖをプロットした図である。
【図５】ゲームが引き分けで終了する場合の、様々な引き分けマージンεの値に対する関数Ｗをプロットした図である。
【図６】ゲームのプレイヤの相対的スキルの表示を決定する方法のフロー図である。
【図７】４チームを有するゲームに対するファクタグラフの例の図である。
【図８】ファクタグラフ内の順序ノードに関連付けたプロセスの適用前後のガウス確率分布を示す図である。
【図９】スケジューリングを示す矢印を有する、図７のファクタグラフを示す図である。
【図１０】ファクタグラフの例の図である。
【図１１】ファクタグラフの例の図である。
【図１２】ファクタグラフの例の図である。
【図１３】ファクタグラフの例の図である。
【図１４】ファクタグラフの例の図である。
【図１５】ファクタグラフの例の図である。
【図１６】ファクタグラフの例の図である。
【図１７】ファクタグラフの例の図である。
【図１８】ファクタグラフの例の図である。
【図１９】部分的ランキングに対して修正した、図７のファクタグラフを示す図である。
【図２０】ゲームのプレイヤの相対的スキルの表示を決定する装置の概略図である。
【図１】
2009525807.tif 000030
【図２】
2009525807.tif 000031
【図３】
2009525807.tif 000032
【図４】
2009525807.tif 000033
【図５】
2009525807.tif 000034
【図６】
2009525807.tif 000035
【図７】
2009525807.tif 000036
【図８】
2009525807.tif 000037
【図９】
2009525807.tif 000038
【図１０】
2009525807.tif 000039
【図１１】
2009525807.tif 000040
【図１２】
2009525807.tif 000041
【図１３】
2009525807.tif 000042
【図１４】
2009525807.tif 000043
【図１５】
2009525807.tif 000044
【図１６】
2009525807.tif 000045
【図１７】
2009525807.tif 000046
【図１８】
2009525807.tif 000047
【図１９】
2009525807.tif 000048
【図２０】
2009525807.tif 000049
【国際調査報告】
2009525807.tif 000050
2009525807.tif 000051
2009525807.tif 000052