(57)【要約】【課題】組み合わせ爆発を引き起こすデータ処理において、任意の枚数の組み合わせを網羅的に抽出することが可能なシステムを提供する。【解決手段】本発明は、Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステムであって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、各々が、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を記憶する複数の演算装置と、前記所有媒体群情報を記憶し、かつ前記演算装置の各々の動作の並列処理を制御する制御装置であって、抽出した複数の媒体からなる組を前記演算装置の各々に割り当てて送信する制御装置と、を備える。【選択図】図１
2020141886.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステムであって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
各々が、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を記憶する複数の演算装置と、
前記所有媒体群情報を記憶し、かつ前記演算装置の各々の動作の並列処理を制御する制御装置であって、抽出した複数の媒体からなる組を前記演算装置の各々に割り当てて送信する制御装置と、を備え、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、
前記制御装置は、前記演算装置の各々から受信した組を集約し、該集約した組を複数のクラスタにクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して前記媒体集合が含む媒体を各々結合して複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、
システム。
【請求項２】
前記制御装置は、複数の媒体からなる組を前記演算装置の各々に割り当てて送信する前に、前記媒体集合が含む媒体を前記演算装置の各々に割り当てて送信し、該演算装置の各々は、前記所有媒体群情報を参照することにより該制御装置から受信した媒体の各々の出現頻度を算出し、該受信した媒体から所定の基準を満たす出現頻度が高い媒体を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した媒体を集約し、該集約した媒体の各々に対して前記媒体集合が含む媒体を各々結合して複数の２つの媒体からなる組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、請求項１に記載のシステム。
【請求項３】
前記制御装置は、前記所有媒体群情報が含む複数のユーザの所有媒体群から、複数のＮ個の媒体からなる組を抽出し、該抽出した組を前記演算装置の各々に割り当てて送信し、該演算装置の各々は、前記所有媒体群情報を参照することにより該制御装置から受信した組の各々の出現頻度を算出し、該受信した組から前記第１の基準を満たす出現頻度が高い媒体を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した組を集約して出力することができるとともに、該集約した組の各々に対して該集約した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成され、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、前記第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに前記第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、
請求項１又は２に記載のシステム。
【請求項４】
前記制御装置は、媒体又は組を前記演算装置の各々に割り当てる前に該媒体又は組の並び順をシャッフルするように構成される、請求項１から３のいずれか１項に記載のシステム。
【請求項５】
前記第１の基準は、出現頻度が高い組から順に選択した場合に、選択された組の出現頻度の合計が、前記算出された組の出現頻度の合計の所定割合となるまでに選択されることである、請求項１から４のいずれか１項に記載のシステム。
【請求項６】
前記制御装置は、前記演算装置の各々から受信した組を、出現頻度が高い順に並び替えて集約し、凝集型階層的クラスタリングを適用することにより該集約した組を複数のクラスタにクラスタリングする、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
前記制御装置は、前記集約した組を複数のクラスタにクラスタリングするにあたって、該集約した組において隣接する組が所定数以上の共通する媒体を有する場合に１つのクラスタとして設定する、請求項１から６のいずれか１項に記載のシステム。
【請求項８】
前記制御装置は、前記第２の基準を満たす出現頻度が高い媒体の組を抽出するにあたって、各々のクラスタごとに、該クラスタに設定された組の出現頻度の合計からクラスタ頻度割合を算出できるように構成され、
前記第２の基準は、出現頻度が高い組から順に選択した場合に、選択された組の出現頻度の合計が、クラスタ頻度割合に基づいた所定値となるまでに選択されることである、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
前記所定の基準は、出現頻度が高い媒体から順に選択した場合に、選択された媒体の出現頻度の合計が、前記算出された媒体の出現頻度の合計の所定割合となるまでに選択されることである、請求項２に記載のシステム。
【請求項１０】
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するための方法であって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
制御装置において、抽出した媒体又は複数の媒体からなる組を演算装置の各々に割り当てて送信するステップと、
前記演算装置の各々において、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信するステップと、
前記制御装置において、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出するステップと、
前記抽出した組の各々に対して前記媒体集合が含む媒体を各々結合して複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信するステップと、
を有する、方法。
【請求項１１】
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステムであって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
各々が、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を記憶する複数の演算装置と、
前記所有媒体群情報を記憶し、かつ前記演算装置の各々の動作の並列処理を制御する制御装置であって、複数の媒体からなる組を前記演算装置の各々に割り当てて送信する制御装置と、を備え、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、
前記制御装置は、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、
システム。
【請求項１２】
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するための方法であって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
制御装置において、複数の媒体からなる組を演算装置の各々に割り当てて送信するステップと、
前記演算装置の各々において、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信するステップと、
前記制御装置において、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出するステップと、
前記抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信するステップと、
を有する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステム及び方法に関する。
【背景技術】
【０００２】
近年、ネットワークを通じて複数のプレイヤが参加可能なオンラインゲームを楽しむプレイヤが増えている。当該ゲームは、携帯端末装置等がゲーム運営者のサーバ装置等と通信を行うゲームシステムにより実現され、携帯端末装置を操作するプレイヤは、他のプレイヤと対戦プレイを行うことができる。
【０００３】
オンラインゲームの１つの種類として、カードやキャラクタなどのゲーム媒体の組み合わせに応じて様々なアクションが実行されるデジタルコレクタブルカードゲーム（ＤＣＣＧ）と呼ばれるカードゲームがある。提供されるゲームのカード等の数が線形的に増加することにより、ゲームの戦略性は飛躍的に向上するが、一方でカード等の組み合わせの数は爆発的に増大する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６４３８６１２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、カード等の組み合わせという、組み合わせ爆発を引き起こすデータ処理を行うことができなかった。組み合わせ爆発とは、Ｎ個の要素があるとき、要素間の組み合わせは、２のＮ乗に比例して大きくなるため、Ｎの増加がほんの少しであっても、組み合わせ数は天文学的な数字になるというものである。例えば、約１３００種類のカードから４０枚のカードを選択してデッキを構築するオンラインカードゲームにおいて、現存する計算機を用いて、構築可能な４０枚のデッキのバリエーションを網羅的に分析することはできなかった。
【０００６】
数年間にわたり継続的に提供されるオンラインゲームでは、ユーザの動向も時間に伴い変化するため、実際のユーザの傾向を把握することが重要となっている。特に、カードの組み合わせにより、ゲームの奥深さが担保されているようなジャンルのゲームにおいては、カードがどのように組み合わせられるかを網羅的に把握することが重要となる。例えば２枚のカードの組み合わせ、３枚のカードの組み合わせ、…３９枚のカードの組み合わせというように、任意の枚数のカードの組み合わせパターンを抽出することができれば様々な応用が可能となるため、このような技術が必要とされている。例えば応用としては、カードの組み合わせ方の戦術、カード構築操作の自動補完、又は特許文献１が開示するようなＱＡプロセスなどへの幅広い応用が考えられる。
【０００７】
本発明は、このような課題を解決するためになされたものであり、組み合わせ爆発を引き起こすデータ処理において、任意の枚数の組み合わせを網羅的に抽出することが可能なシステム等を提供することを主目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明の一態様としてのシステムは、
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステムであって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
各々が、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を記憶する複数の演算装置と、
前記所有媒体群情報を記憶し、かつ前記演算装置の各々の動作の並列処理を制御する制御装置であって、抽出した複数の媒体からなる組を前記演算装置の各々に割り当てて送信する制御装置と、を備え、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、
前記制御装置は、前記演算装置の各々から受信した組を集約し、該集約した組を複数のクラスタにクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して前記媒体集合が含む媒体を各々結合して複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、ことを特徴とする。
【０００９】
また、本発明において好ましくは、前記制御装置は、複数の媒体からなる組を前記演算装置の各々に割り当てて送信する前に、前記媒体集合が含む媒体を前記演算装置の各々に割り当てて送信し、該演算装置の各々は、前記所有媒体群情報を参照することにより該制御装置から受信した媒体の各々の出現頻度を算出し、該受信した媒体から所定の基準を満たす出現頻度が高い媒体を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した媒体を集約し、該集約した媒体の各々に対して前記媒体集合が含む媒体を各々結合して複数の２つの媒体からなる組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される。
【００１０】
また、本発明において好ましくは、前記制御装置は、前記所有媒体群情報が含む複数のユーザの所有媒体群から、複数のＮ個の媒体からなる組を抽出し、該抽出した組を前記演算装置の各々に割り当てて送信し、該演算装置の各々は、前記所有媒体群情報を参照することにより該制御装置から受信した組の各々の出現頻度を算出し、該受信した組から前記第１の基準を満たす出現頻度が高い媒体を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した組を集約して出力することができるとともに、該集約した組の各々に対して該集約した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成され、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、前記第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに前記第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される。
【００１１】
また、本発明において好ましくは、前記制御装置は、媒体又は組を前記演算装置の各々に割り当てる前に該媒体又は組の並び順をシャッフルするように構成される。
【００１２】
また、本発明において好ましくは、前記第１の基準は、出現頻度が高い組から順に選択した場合に、選択された組の出現頻度の合計が、前記算出された組の出現頻度の合計の所定割合となるまでに選択されることである。
【００１３】
また、本発明において好ましくは、前記制御装置は、前記演算装置の各々から受信した組を、出現頻度が高い順に並び替えて集約し、凝集型階層的クラスタリングを適用することにより該集約した組を複数のクラスタにクラスタリングする。
【００１４】
また、本発明において好ましくは、前記制御装置は、前記集約した組を複数のクラスタにクラスタリングするにあたって、該集約した組において隣接する組が所定数以上の共通する媒体を有する場合に１つのクラスタとして設定する。
【００１５】
また、本発明において好ましくは、前記制御装置は、前記第２の基準を満たす出現頻度が高い媒体の組を抽出するにあたって、各々のクラスタごとに、該クラスタに設定された組の出現頻度の合計からクラスタ頻度割合を算出できるように構成され、
前記第２の基準は、出現頻度が高い組から順に選択した場合に、選択された組の出現頻度の合計が、クラスタ頻度割合に基づいた所定値となるまでに選択されることである。
【００１６】
また、本発明において好ましくは、前記所定の基準は、出現頻度が高い媒体から順に選択した場合に、選択された媒体の出現頻度の合計が、前記算出された媒体の出現頻度の合計の所定割合となるまでに選択されることである。
【００１７】
また、上記の目的を達成するために、本発明の一態様としての方法は、
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するための方法であって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
制御装置において、抽出した媒体又は複数の媒体からなる組を演算装置の各々に割り当てて送信するステップと、
前記演算装置の各々において、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信するステップと、
前記制御装置において、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出するステップと、
前記抽出した組の各々に対して前記媒体集合が含む媒体を各々結合して複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信するステップと、
を有することを特徴とする。
【００１８】
また、上記の目的を達成するために、本発明の一態様としてのシステムは、
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステムであって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
各々が、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を記憶する複数の演算装置と、
前記所有媒体群情報を記憶し、かつ前記演算装置の各々の動作の並列処理を制御する制御装置であって、複数の媒体からなる組を前記演算装置の各々に割り当てて送信する制御装置と、を備え、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、
前記制御装置は、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、ことを特徴とする。
【００１９】
また、上記の目的を達成するために、本発明の一態様としての方法は、
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するための方法であって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
制御装置において、複数の媒体からなる組を演算装置の各々に割り当てて送信するステップと、
前記演算装置の各々において、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信するステップと、
前記制御装置において、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出するステップと、
前記抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信するステップと、
を有することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、組み合わせ爆発を引き起こすデータ処理において、任意の枚数の組み合わせを網羅的に抽出することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態のシステムの全体構成図である。
【図２】本発明の一実施形態の制御装置のハードウェア構成を示すブロック図である。
【図３】本発明の一実施形態の演算装置のハードウェア構成を示すブロック図である。
【図４】ユーザの端末装置のディスプレイに表示されるゲーム画面の一例である。
【図５】システムが実行可能な推論処理の概要を示す図である。
【図６】システムが実行可能な推論処理の概要を示す図である。
【図７】カードデッキ情報Ａを用いて確認した、出現頻度ごとのカード又はカード組み合わせの種類を示す図である。
【図８】任意のｋ枚組のカード組み合わせを抽出するシステムの加算的推論処理を説明する図である。
【図９】グローバルフィルタリング処理を説明する図である。
【図１０】任意のｋ枚組のカード組み合わせを抽出するシステムの減算的推論処理を説明する図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の実施形態によるシステム１について説明する。図１は、本発明の一実施形態のシステム１の全体構成図である。図１に示すように、システム１は、制御装置１０と複数の演算装置２０とを備え、これらはネットワーク２に接続され、互いに通信可能である。好ましくは、制御装置１０はシステム１全体を制御する。
【００２３】
図２は本発明の一実施形態の制御装置１０のハードウェア構成を示すブロック図である。本実施形態による制御装置１０は、一般的なサーバやＰＣ等と同様の構成を含む。制御装置１０は、プロセッサ１１、入力装置１２、出力装置１３、記憶装置１４、及び通信装置１５を備える。これらの各構成装置はバス１６によって接続される。なお、バス１６と各構成装置との間には必要に応じてインタフェースが介在しているものとする。
【００２４】
プロセッサ１１は、制御装置１０全体の動作を制御するものであり、例えばＣＰＵ及びＧＰＵである。制御装置１０は並列処理を行うため、好ましくは、プロセッサ１１は、グラフィクス描画以外の汎用処理を行うためのＧＰＵを含む。このような構成とすることにより、複数のコアを同時に動かして並列処理させ、計算速度を向上させることが可能となる。プロセッサ１１は、記憶装置１４に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。
【００２５】
入力装置１２は、制御装置１０に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、又はマウスである。出力装置１３は、ユーザに制御装置１０の出力情報を出力又は表示するものであり、例えば、画像を出力するディスプレイやプリンタである。
【００２６】
記憶装置１４は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えばＲＡＭのような半導体メモリである。ＲＡＭは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ１１が情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置は、読み出し専用の不揮発性記憶媒体であるＲＯＭを含んでいてもよい。この場合、ＲＯＭはファームウェア等のプログラムを格納する。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ１１が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置は、例えば、オペレーティングシステム（ＯＳ）、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
【００２７】
通信装置１５は、ネットワーク２を介して他のコンピュータとの間でデータの授受を行う。例えば通信装置１５は、イーサネット（登録商標）ケーブル等を用いた有線通信や移動体通信、無線ＬＡＮ等の無線通信を行い、ネットワーク２へ接続する。
【００２８】
図３は本発明の一実施形態の演算装置２０のハードウェア構成を示すブロック図である。本実施形態による演算装置２０は、一般的なサーバやＰＣ等と同様の構成を含む。演算装置２０は、プロセッサ２１、入力装置２２、出力装置２３、記憶装置２４、及び通信装置２５を備える。これらの各構成装置はバス２６によって接続される。なお、バス２６と各構成装置との間には必要に応じてインタフェースが介在しているものとする。複数の演算装置２０の各演算装置２０が本構成を備える。
【００２９】
プロセッサ２１は、演算装置２０全体の動作を制御するものであり、例えばＣＰＵ及びＧＰＵである。演算装置２０は並列処理を行うため、好ましくは、プロセッサ２１は、グラフィクス描画以外の汎用処理を行うためのＧＰＵを含む。このような構成とすることにより、複数のコアを同時に動かして並列処理させ、計算速度を向上させることが可能となる。プロセッサ２１は、記憶装置２４に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。
【００３０】
入力装置２２は、演算装置２０に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、又はマウスである。出力装置２３は、ユーザに演算装置２０の出力情報を出力又は表示するものであり、例えば、画像を出力するディスプレイやプリンタである。
【００３１】
記憶装置２４は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えばＲＡＭのような半導体メモリである。ＲＡＭは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ２１が情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置は、読み出し専用の不揮発性記憶媒体であるＲＯＭを含んでいてもよい。この場合、ＲＯＭはファームウェア等のプログラムを格納する。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ２１が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置は、例えば、オペレーティングシステム（ＯＳ）、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
【００３２】
通信装置２５は、ネットワーク２を介して他のコンピュータとの間でデータの授受を行う。例えば通信装置２５は、イーサネット（登録商標）ケーブル等を用いた有線通信や移動体通信、無線ＬＡＮ等の無線通信を行い、ネットワーク２へ接続する。
【００３３】
本発明の実施形態によるシステム１の技術的特徴の１つは、大量に蓄積されるカードバトルゲームのログを対象として網羅的な組み合わせの出現頻度を算出することにより、ゲームログの中から重要な組み合わせを網羅的に抽出することである。システム１が用いるゲームログは、ゲームサーバ（図示せず）により記録される。ゲームサーバは、一般的なサーバと同様の構成を含むものであり、例えば公知のサーバコンピュータである。
【００３４】
ゲームサーバは、ゲームをプレイする各ユーザの端末装置（図示せず）とインターネットなどのネットワークを介して接続される。ユーザの端末装置は、好ましくはスマートフォンであるが、パーソナルコンピュータ、タブレット端末、携帯電話機などでもよい。例えば、各ユーザは端末装置にインストールされたゲームアプリを起動すると、端末装置はゲームサーバにアクセスし、ゲームサーバは、各端末装置からのアクセスを受け付けて、ネットワークを介したゲームサービスを提供する。ゲームサーバは、ゲーム用のアプリケーションであるゲームプログラムを記憶し、ユーザの端末装置でのゲーム操作入力に応じてゲームを実行し、その実行結果をユーザの端末装置に送信する。ゲームサーバは、各ユーザの操作内容を含むゲームログを記憶して管理する。
【００３５】
本実施形態のゲームサーバが提供するゲームは、いわゆるデジタルコレクタブルカードゲーム（ＤＣＣＧ）である。具体的には、本実施形態のゲームは、複数のカードを含んで構成される所有カード群からユーザがカードを選択して当該カードをゲームフィールドに出すことで、カードやクラスの組み合わせに応じて様々なイベントが実行されて進行するものである。所有カード群は、一般的にカードデッキと呼ばれるものである。また、本実施形態のゲームは、複数のユーザが所有カード群からカードを選択してゲームフィールド４３に出して対戦する対戦ゲームである。例えば、各カードは、カードＩＤ、カード種別、ヒットポイント、攻撃力、属性などのパラメータを含むカード定義情報を有し、各クラスは、クラス定義情報を有する。カード種別は、カードがキャラクタ又はアイテムであることを示す情報である。
【００３６】
ゲームサーバは、各ユーザの所持しているカードなどの各ユーザのゲームに関する情報をユーザＩＤに関連付けて記憶する。ゲームサーバは、ゲーム内において所定の方法でユーザにカードを取得させる。ユーザは、予め設定されたゲーム内に存在する全カードの種類Ｃの中から複数のカードを取得することができる。取得するカードは、同一種類のカードを含んでいてもよい。１つの例では、ゲームサーバは、ユーザ操作に応じてガチャなどの抽選処理を行い、ユーザにカードを取得させる。１つの例では、ゲームサーバは、ユーザＩＤに関連付けられたゲーム内通貨を記憶し、ユーザがゲーム内通貨を消費して所望のカードを取得するためのユーザ操作に応じて、ユーザに当該所望のカードを取得させる。
【００３７】
ゲームサーバは、ユーザが取得して所持する複数のカードからＮ枚のカードを選択させて、当該ユーザにカードデッキを構築させる。このようにして、Ｎ枚カードからなるカードデッキが構築される。１つの例では、ゲームサーバは、ユーザにカードデッキを構築させる際に、所定のルールに基づいて、例えば同一のカードは３枚を超えて選択できないようにして、ユーザにＮ枚のカードを選択させる。
【００３８】
図４は、ユーザの端末装置のディスプレイに表示されるゲーム画面の一例であり、ユーザ端末装置を操作するユーザ自身である自ユーザと他のユーザ端末装置を操作する他ユーザのカードバトルのゲーム画面４０を示すものである。ゲーム画面４０は、自ユーザの手札である第１のカード群４２ａと、他ユーザの手札である第１のカード群４２ｂとを示している。ゲームは、自ユーザが他ユーザの第１のカード群４２ｂの内容を確認できないように構成される。
【００３９】
各ユーザが所有する所有カード群は、ユーザの手札である第１のカード群４２と、ユーザの山札である第２のカード群４４から構成される。ユーザが所有する各カード４１が第１のカード群４２に含まれるか第２のカード群４４に含まれるかは、ゲームの進行に応じて決定される。第１のカード群４２は、ユーザが選択可能であり、ゲームフィールド４３に出すことが可能なカード群であり、第２のカード群４４は、ユーザが選択不可能なカード群である。所有カード群は、複数のカード４１から構成されるものであるが、ゲームの進行上、所有カード群は１枚のカード４１から構成される場合もある。ゲームは、各ユーザが第１のカード群４２（４２ａ、４２ｂ）の各々からゲームフィールド４３にカード４１を出すことで、進行する。なお、各ユーザのカードデッキは、すべて異なる種類のカード４１により構成されてもよいし、同じ種類のカード４１を一部含んで構成されてもよい。また、自ユーザのカードデッキを構成するカード４１の種類は、他ユーザのカードデッキを構成するカード４１の種類と異なってもよい。他の例では、各ユーザが所有する所有カード群は、第１のカード群４２のみから構成される。
【００４０】
ゲーム画面４０は、自ユーザの選択したキャラクタ４５ａと、他ユーザの選択したキャラクタ４５ｂを示す。本実施形態において、ユーザが選択するキャラクタは、カードと関連付けられているキャラクタとは異なるものであり、所有カード群のタイプを示すクラスを定める。本実施形態のゲームは、クラスに応じて、ユーザが所有するカード４１が異なるように構成される。１つの例では、本実施形態のゲームは、各ユーザのカードデッキを構成することができるカードの種類が、クラスに応じて異なるように構成される。１つの例では、本実施形態のゲームは、カード４１をゲームフィールド４３に出すことにより生じる効果は、カード定義情報に設定されるパラメータにより異なるように構成される。
【００４１】
ただし、カード４１は、媒体の１つの例示であり、所有カード群は、ユーザが所有する複数の媒体を含んで構成される所有媒体群の１つの例である。媒体は、キャラクタやアイテムなどとすることもできる。例えば６枚組カードは、すなわち６つのカードからなる組は、６つの媒体からなる組と表すことができる。また予めゲームに設定された全種類のカード、すなわちカード集合は、媒体集合と表すことができる。例えば媒体群がキャラクタとアイテムの媒体により構成される場合、ゲーム画面４０は、カード４１として、キャラクタ又はアイテムそのものを示すこととなる。
【００４２】
本実施形態のゲームサーバが提供するゲームにおいて、カードデッキは、Ｎ枚のカードから構成され、予め設定されたゲーム内に存在する全カードの種類Ｃの中から選択されたものである。本実施形態では、説明の便宜上、Ｎは４０とし、Ｃは１３００とするが、これに限定されないことは理解される。ゲームサーバはゲームログを記憶し、システム１は該ゲームログを使用する。ゲームログは、ユーザＩＤ、クラス及びカードデッキ情報を含む。カードデッキ情報は、ユーザが使用したカードデッキを構成するＮ枚のカードに関する情報であり、好ましくはユーザＩＤに関連付けられたものである。ゲームログは、クラスを含まなくてもよい。１つの例では、ゲームサーバ又は制御装置１０は、ゲームログが記憶するカードデッキ情報の各々を、当該カードデッキの勝率、当該カードデッキの使用率、及び当該カードデッキ情報に関連付けられたユーザＩＤの数の少なくとも１つに関連付けて記憶する。
【００４３】
システム１は、Ｎ枚のカードを含んで構成されるカードデッキからユーザがカードを選択して該カードをゲームフィールドに出すことで進行するゲームにおいてカードデッキに含まれる出現頻度の高い任意の枚数のカード組み合わせを抽出可能に構成される。具体的には、システム１は、ゲームログが記憶するカードデッキ情報の少なくとも一部を含むカードデッキ情報Ａを用いて、各ユーザのゲーム開始時のカードデッキに含まれる出現頻度の高い任意の枚数のカード組み合わせを抽出する。本実施形態では、説明の便宜上、ｋ枚組（ｋは２以上の整数）のカード組み合わせ又はｋ枚組のカード組み合わせパターンを単にｋ枚組カードと表す場合がある。また、制御装置１０又は演算装置２０が抽出又は集約した複数のｋ枚組カードについては、１つのｋ枚組カードと区別して、複数通りのｋ枚組カードと表す場合がある。また、出現頻度の高いｋ枚組カードは、カードデッキ情報Ａが含むカードデッキにおいて出現頻度の高いｋ枚組カードを意味する。したがって、ｋ枚組カードの出現頻度の高さは、カードデッキ情報Ａが含むカードデッキに含まれるｋ枚組カードの数に比例するものである。
【００４４】
制御装置１０の記憶装置１４は、カードデッキ情報Ａを記憶する。記憶装置１４は、全カードの種類Ｃも記憶する。制御装置１０は、複数の演算装置２０の各々の動作の並列処理を制御し、複数の演算装置２０の各々に処理すべきデータを割り当てて実行させる。ｓ個の演算装置２０の各々の記憶装置２４は、カードデッキ情報Ａを記憶する。１つの例では、カードデッキ情報Ａは、カードデッキ情報に関連付けられたカードデッキの勝率及びカードデッキの使用率の少なくとも１つに基づいて、ゲームログが記憶するカードデッキ情報から抽出されたカードデッキ情報である。例えば、カードデッキ情報Ａは、ゲームログが記憶するカードデッキ情報から勝率５０％を超えるカードデッキ情報が抽出されて作成されたものである。１つの例では、カードデッキ情報Ａは、カードデッキ情報に関連付けられたユーザＩＤの数に基づいて、ゲームログが記憶するカードデッキ情報から抽出されたカードデッキ情報である。１つの例では、カードデッキ情報Ａや全カードの種類Ｃは、ｃｓｖファイルで記憶される。１つの例では、ゲームサーバ又は制御装置１０が、カードデッキ情報Ａを抽出及び作成する。
【００４５】
従来、１３００種類のカードから４０枚のカードを選択してカードデッキを構築する場合、出現頻度の高い２枚組、３枚組、４枚組、…、３９枚組のカード組み合わせのような、出現頻度の高い任意のｋ枚組カードを網羅的に抽出することは難しかった。特に出現頻度の高い１０〜３０枚組カードを抽出することは難しかった。一方、出現頻度の高い１枚のカードや、出現頻度の高い２枚組、３９枚組や４０枚組カードは比較的容易に算出することが可能である。
【００４６】
図５、６は、システム１が実行可能な推論処理の概要を示す図である。システム１は、図５に示す加算的推論処理及び図６に示す減算的推論処理を実行できるように構成される。これらの処理は、制御装置１０及び各演算装置２０のプロセッサ１１、２１により各々プログラムが実行されることにより実現される。加算的推論処理とは、例えばＰとＱの２つのカードが高頻度で組み合わせられるということが分かっているときに、２枚組の次の次数、すなわち、３枚目の組み合わせを求める処理である。この次の次数を求める際、システム１は、ユーザが使用したすべてのカードデッキに関する情報であるカードデッキ情報Ａを参照して出現頻度を算出する。
【００４７】
加算的推論処理において、システム１は、出現頻度の高い１枚のカードを抽出し、抽出されたカードの情報を用いて、出現頻度の高い２枚組カードを抽出する。更にシステム１は、抽出された２枚組カードの情報を用いて、出現頻度の高い３枚組カードを抽出する。このようにして、システム１は、１枚組〜２０枚（Ｎ／２枚）組における出現頻度の高いカード組み合わせを抽出する。
【００４８】
減算的推論処理において、システム１は、出現頻度の高い４０枚組カードを抽出し、抽出された４０枚組カードの情報を用いて出現頻度の高い３９枚組カードを抽出する。更にシステム１は、抽出された３９枚組カードの情報を用いて、出現頻度の高い３８枚組カードを抽出する。このようにして、システム１は、４０枚組〜２１枚（Ｎ／２＋１枚）における出現頻度の高いカード組み合わせを抽出する。
【００４９】
図７は、一般的に確認されている言語全体に占める単語の出現順位と出現頻度を示す図である。図７において、横軸は出現順位を示す対数軸であり、縦軸は出現頻度を示す対数軸である。図７は、ある特定の少数の単語が出現頻度のほとんどを占めること、すなわちＺｉｐｆ構造と呼ばれる頻度の偏りが顕著に表れることを示している。本実施形態のシステム１は、カードゲームにおいて、ある特定の少数のカード又はカード組み合わせが出現頻度のほとんどを占めること、すなわち頻度の強い偏り（Ｚｉｐｆ構造）が存在することを前提としている。
【００５０】
本実施形態のシステム１は、カード組み合わせ候補を多段階にフィルタリングしたうえで再帰的に推論することにより、データが有するＺｉｐｆ構造を活用した組み合わせ爆発の抑制をしながら、網羅的な組み合わせの抽出を実現する。加算的推論処理において、システム１が単純に頻度の高い組み合わせのみをフィルタリングにより残す場合、推論の次数が進めば進むほど、組み合わせを構成する要素の多様性は失われ、特定の組み合わせから派生した組み合わせのみが残ることになる。その結果、このＺｉｐｆ構造は急速に失われ、頻度の勾配が消失することになり、フィルタリングが有効に機能しなくなってしまう。そこで本実施形態のシステム１は後述のグローバルフィルタリングを導入することにより、次数に関わらずＺｉｐｆ構造が維持されるようにしている。
【００５１】
１つの例では、システム１は出現頻度の高い１〜４０枚組カードの各々を抽出する。この場合、システム１が１〜２０枚組カードについては加算的推論処理を行い、かつ２１〜４０枚組カードについては減算的推論処理を行ってカード組み合わせを抽出するように、制御装置１０及び各演算装置２０は動作する。他の例では、制御装置１０が入力装置１２を介して１〜４０の入力を受け付けると、システム１は受け付けた枚数のカード組み合わせを抽出する。例えば、制御装置１０が入力装置１２を介して１５の入力を受け付けると、システム１は出現頻度の高い１５枚組カードを抽出する。この場合、システム１が加算的推論処理のみを行ってカード組み合わせを抽出するように、制御装置１０及び各演算装置２０は動作する。
【００５２】
図８は、任意のｋ枚組のカード組み合わせを抽出するシステム１の加算的推論処理を説明する図である。制御装置１０の記憶装置１４は、Ｘk通りのｋ枚組カードに関するデータを記憶する。当該データは、Ｘk通りのｋ枚組カードに関するデータが１つずつ順番に並べられたデータであり、例えばＸk通りのｋ枚組カードに関するデータが順番に並べられた１次元配列のデータ構造を有する。なお説明の便宜上、本明細書は、カードやカード組み合わせを送受信するなどと表記する場合があるが、これは、カードやカード組み合わせに関するデータを送受信することを意味することは理解される。
【００５３】
制御装置１０は、Ｘk通りのｋ枚組カードの並び順をシャッフルする（ステップ１０１）。制御装置１０は、シャッフルしたｋ枚組カードをｓ個に分割し（ステップ１０２）、Ｘk／ｓ通りの分割したカード組み合わせをｓ個のサーバの各々に割り当て、送信する（ステップ１０３）。
【００５４】
各演算装置２０は、制御装置１０からＸk／ｓ通りのｋ枚組カードを受信すると、Ｘk／ｓ通りのｋ枚組カードの各々において、記憶装置２４が記憶するカードデッキ情報Ａを参照することにより、受信したｋ枚組カードの各々の出現頻度を算出する（ステップ１０４）。各演算装置２０は、ローカルフィルタリング処理により、第１の基準を満たす出現頻度が高いｋ枚組カードを抽出し（ステップ１０５）、制御装置１０へ送信する（ステップ１０６）。
【００５５】
制御装置１０は、演算装置２０の各々から受信した複数通りのｋ枚組カードを集約する（ステップ１０７）。制御装置１０は、グローバルフィルタリング処理により、該集約した複数通りのｋ枚組カードを複数のクラスタにクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高いｋ枚組カードを抽出する（ステップ１０８）。
【００５６】
制御装置１０は、更に１枚多い枚数のカード組み合わせを抽出するか否かを判断する（ステップ１０９）。ステップ１０９で抽出しないと判断された場合、加算的推論処理は終了する。ステップ１０９で抽出すると判断された場合、制御装置１０は、１枚多い枚数のカード組み合わせであるｋ＋１枚組カードを生成する（ステップ１１０）。ステップ１０８でＸk´通りのｋ枚組カードが抽出されたとすると、制御装置１０は、Ｘk´通りのｋ枚組カードの各々に対してカード集合が含む全種類のカードを各々結合してＣ通りのｋ＋１枚組カードを生成する（ステップ１１０）。このように制御装置は１通りのｋ枚組カードからＣ通りのｋ＋１枚組カードを生成するため、結果として制御装置１０は、Ｘk´×Ｃ通り（Ｘk+1通り）のｋ＋１枚組カードを生成する。その後、制御装置１０は、ステップ１０１〜１１０を実行することで、ｋ＋１枚組カードを抽出することができる。
【００５７】
次にローカルフィルタリング処理について説明する。第１の基準は、出現頻度が高いｋ枚組カードから順に選択した場合に、選択されたｋ枚組カードの出現頻度の合計が、演算装置２０がステップ１０４で算出したｋ枚組カードの出現頻度の合計の所定割合となるまでに選択されることである。
【００５８】
１つの例では、ステップ１０４において、演算装置２０は、Ｘk／ｓ通りのｋ枚組カードの各々について、カードデッキ情報Ａが含むカードデッキに含まれる数量を算出し、算出した数量が高い順番にＸk／ｓ通りのｋ枚組カードを並べ替える。この場合、例えば演算装置２０は、算出した数量が高い順番に並べ替えたＸk／ｓ通りのｋ枚組カードを１次元配列のデータ構造で記憶装置２４に記憶する。ｋ枚組カードの各々について算出した数量は、カードデッキ情報Ａが含むカードデッキにおけるｋ枚組カードの各々の出現数量に対応する。演算装置２０は、算出した数量すべての合計α１を算出する。演算装置２０は、算出した数量が高い順番からｋ枚組カードを選択しつつ、選択したｋ枚組カードの数量の合計をα２として算出する。所定割合をＴ１（０≦Ｔ１≦１）とすると、α２がα１×Ｔ１となるまでに演算装置２０が選択したｋ枚組カードが、第１の基準を満たすｋ枚組カードとなる。
【００５９】
好ましくは、ローカルフィルタリング処理においては、各演算装置２０は、第１の基準を用いた抽出処理を行う前に、ゲームにおけるカードデッキ構築のルールを反映させてｋ枚組カードを抽出して、組み合わせ数を削減する。例えばカードデッキ構築のルールの反映させた抽出は、特定の対戦では組み合わせることが許可されないカードの組み合わせを排除した抽出やクラスに応じて含むことができないカード種類を排除した抽出である。
【００６０】
次にグローバルフィルタリング処理について説明する。制御装置１０は、ステップ１０７において、演算装置２０の各々から受信したｋ枚組カードを結合してソートして並べることにより、集約する。１つの好適な例では、制御装置１０は、複数通りのｋ枚組カードを出現頻度が高い順番に並べ替える。この場合、例えば制御装置１０は、出現頻度が高い順番に並べ替えた複数通りのｋ枚組カードを１次元配列のデータ構造で記憶装置１４に記憶する。
【００６１】
ステップ１０８におけるクラスタリングにおいて、制御装置１０は、集約した複数通り（Ｑ通り）のｋ枚組カードを複数（Ｐ通り）のクラスタ（部分集合）にクラスタリングする。ただし、このとき、Ｐ＜Ｑである。１つの好適な例では、制御装置１０は、クラスタリング・アルゴリズムとして、凝集型階層的クラスタリング（Ａｇｇｌｏｍｅｒａｔｉｖｅ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｃｌｕｓｔｅｒｉｎｇ）を用いる。凝集型階層的クラスタリングのアルゴリズムは、既知のアルゴリズム（例えば、Sepandar D. Kamvar, Dan Klein, and Christopher D. Manning. 2002. Interpreting and Extending Classical Agglomerative Clustering Algorithms using a Model-Based approach. In Proceedings of the Nineteenth International Conference on Machine Learning (ICML '02), Claude Sammut and Achim G. Hoffmann (Eds.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 283-290.）を用いる。この凝集型階層型クラスタリングを用いる場合、制御装置１０は、頻度が高い順にソートされたｋ枚組カードの配列を対象として、配列上の位置が隣接するｋ枚組カードの各々が個々のクラスタの状態からクラスタリングを開始する。制御装置１０は、隣接する複数のｋ枚組カードがクラスタリングの段階に応じた所定数若しくは所定割合以上の共通するカードを有するときに順次クラスタを併合し、クラスタの階層を生成する。制御装置１０は、この再帰的適用をクラスタがあらかじめ定められたＴ個になるまで、又は所定割合以上の共通するカードを有するクラスタ群が存在しなくなるまで繰り返す。制御装置１０は、クラスタリング・アルゴリズムが停止した階層、又は所定の階層でのクラスタを用いて、ステップ１０８において集約した複数通りのｋ枚組カードを複数のクラスタに分ける。
【００６２】
制御装置１０は、ステップ１０８において、各々のクラスタごとに、当該クラスタに設定された複数通りのｋ枚組カードの出現頻度の合計を算出する。制御装置１０は、算出した出現頻度の合計を用いて、各々のクラスタごとに、クラスタ頻度割合を算出する。第２の基準は、出現頻度が高いｋ枚組カードから順に選択した場合に、選択されたｋ枚組の出現頻度の合計が、クラスタ頻度割合に基づいた所定値となるまでに選択されることである。
【００６３】
図９は、グローバルフィルタリング処理を説明する図である。図９左は、グローバルフィルタリング処理前の複数通りのｋ枚組カードが出現頻度の高い順番に並べられ、複数のクラスタにクラスタリングされた様子を示す図である。図９右は、グローバルフィルタリング処理後の複数通りのｋ枚組カードが、複数のクラスタにクラスタリングされたまま出現頻度の高い順番に並べられた様子を示す図である。好ましくは、複数のｋ枚組カードが１つのクラスタに設定されるが、１つのｋ枚組カードのみが１つのクラスタに設定されてもよい。同じクラスタに設定された複数のｋ枚組カードは、所定枚数以上の共通するカードを有する。
【００６４】
１つの例では、制御装置１０は、グローバルフィルタリング処理前の複数通りのｋ枚組カードの出現数量すべての合計β１を算出する。制御装置１０は、Ｍ個のクラスタの各々を、ＣＬ1、ＣＬ2、…ＣＬMのように識別可能に設定する。制御装置１０は、各々のクラスタごとに、当該クラスタに設定されたｋ枚組カードの出現数量の合計γ1、γ2…γMを算出する。制御装置１０は、例えばすべての合計β１（＝γ1＋γ2…＋γM）に対する各々のクラスタの合計γ1、γ2…γMから、各々のクラスタごとの割合であるクラスタ頻度割合を算出する。制御装置１０は、予めグローバルフィルタリング処理後のカード組み合わせ数の目標をＴ２と設定すると、当該Ｔ２と各々のクラスタ頻度割合との積により、各クラスタのｋ枚組カードの出現数量の上限を設定する。クラスタＣＬ1において、制御装置１０は、出現数量が高い順番にｋ枚組カードを選択しつつ、選択したｋ枚組カードの数量の合計をδ1として算出する。クラスタＣＬ1に設定されたｋ枚組カードの出現数量の上限をＵＬ1とすると、δ1＝ＵＬ1となるまでに制御装置１０が選択したｋ枚組カードが、第２の基準を満たすｋ枚組カードとなる。
【００６５】
本実施形態では、システム１（制御装置１０）は、直前の推論処理の結果、すなわち加算的推論処理においてはｋ−１枚組カードの抽出時の結果を用いて、フィルタリング処理における閾値Ｔ１、Ｔ２を決定する。したがって、第１の基準及び第２の基準における閾値Ｔ１及びＴ２は、ｋの数字に応じて、すなわちカード組み合わせの枚数に応じて、異なるものである。システム１（制御装置１０）は、Ｚｉｐｆ構造の各組み合わせにおける頻度の強い偏りを活用することで、カードの組み合わせ数を大きく絞りながらも、総数への網羅性を維持することができる。
【００６６】
次に、加算的推論処理の最初の処理について説明する。前述のとおり、加算的推論処理の最初の処理において、システム１は、出現頻度の高い１枚のカードを抽出する。
【００６７】
制御装置１０は、Ｃ種類（Ｘ1通り）の１枚のカードの並び順をシャッフルする（ステップ１０１）。制御装置１０は、シャッフルした１枚のカードをｓ個に分割し（ステップ１０２）、Ｃ／ｓ通りの分割したカードをｓ個のサーバの各々に割り当て、送信する（ステップ１０３）。
【００６８】
各演算装置２０は、制御装置１０からＣ／ｓ通りのカードを受信すると、これらのカードの各々において、記憶装置２４が記憶するカードデッキ情報Ａを参照することにより、受信したカードの各々の出現頻度を算出する（ステップ１０４）。各演算装置２０は、ローカルフィルタリング処理により、所定の基準を満たす出現頻度が高いカードを抽出し（ステップ１０５）、制御装置１０へ送信する（ステップ１０６）。
【００６９】
制御装置１０は、演算装置２０の各々から受信した複数のカードを集約する（ステップ１０７）。制御装置１０は、ステップ１０８及び１０９を実行せず、１枚多い枚数のカード組み合わせである２枚組カードを生成する（ステップ１１０）。ステップ１０７で集約したカードの種類をＸ1通りとすると、制御装置１０は、Ｘ1通りのカードの各々に対してカード集合が含む全種類のカードを各々結合してＣ通りの２枚組カードを生成する（ステップ１１０）。このように制御装置は１つのカードからＣ通りの２枚組カードを生成するため、結果として制御装置１０は、Ｘ1×Ｃ通り（Ｘ2通り）の２枚組カードを生成する。ただし、フィルタリング処理における閾値Ｔ２を調整することにより、制御装置１０がステップ１０８を実行するように構成されてもよい。
【００７０】
その後、制御装置１０は、ステップ１０１〜ステップ１１０を繰り返し実行することにより、任意のｋ枚組カードを抽出することができる。
【００７１】
所定の基準は、第１の基準と同様のものであり、出現頻度が高いカードから順に選択した場合に、選択されたカードの出現頻度の合計が、演算装置２０がステップ１０４で算出したカードの出現頻度の合計の所定割合となるまでに選択されることである。
【００７２】
図１０は、任意のｋ枚組のカード組み合わせを抽出するシステム１の減算的推論処理を説明する図である。
【００７３】
制御装置１０は、Ｘk通りのｋ枚組カードの並び順をシャッフルする（ステップ２０１）。制御装置１０は、シャッフルしたｋ枚組カードをｓ個に分割し（ステップ２０２）、Ｘk／ｓ通りの分割したカード組み合わせをｓ個のサーバの各々に割り当て、送信する（ステップ２０３）。
【００７４】
各演算装置２０は、制御装置１０からＸk／ｓ通りのｋ枚組カードを受信すると、Ｘk／ｓ通りのｋ枚組カードの各々において、記憶装置２４が記憶するカードデッキ情報Ａを参照することにより、受信したｋ枚組カードの各々の出現頻度を算出する（ステップ２０４）。各演算装置２０は、ローカルフィルタリング処理により、第１の基準を満たす出現頻度が高いｋ枚組カードを抽出し（ステップ２０５）、制御装置１０へ送信する（ステップ２０６）。
【００７５】
制御装置１０は、演算装置２０の各々から受信した複数通りのｋ枚組カードを集約する（ステップ２０７）。制御装置１０は、グローバルフィルタリング処理により、該集約した複数通りのｋ枚組カードを複数のクラスタにクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高いカード組み合わせを抽出する（ステップ２０８）。
【００７６】
制御装置１０は、更に１枚少ない枚数のカード組み合わせを抽出するか否かを判断する（ステップ２０９）。ステップ２０９で抽出しないと判断された場合、減算的推論処理は終了する。ステップ２０９で抽出すると判断された場合、制御装置１０は、１枚少ない枚数のカード組み合わせであるｋ−１枚組カードを生成する（ステップ２１０）。ステップ２０８で集約したｋ枚組カードの種類をＸk´通りとすると、制御装置１０は、Ｘk´通りのｋ枚組カードの各々に対してｋ枚組カードを構成するカードのうちの１つのカードを各々除いて新たなｋ通りのｋ−１枚組カードを生成する。このように制御装置１０は１通りのｋ枚組カードからｋ通りのｋ−１枚組カードを生成するため、結果として制御装置１０は、Ｘk´×ｋ通り（Ｘk-1通り）のｋ−１枚組カードを生成する。
【００７７】
ローカルフィルタリング処理やグローバルフィルタリング処理については、加算的推論処理の場合と同様である。なお、減算的推論処理においても、加算的推論処理の場合と同様にして、システム１（制御装置１０）は、ｋ＋１枚組カードの抽出時の結果を用いて、ｋ枚組カード抽出時のフィルタリング処理における閾値Ｔ１、Ｔ２を決定する。したがって、第１の基準及び第２の基準における閾値Ｔ１及びＴ２は、ｋの数字に応じて、すなわちカード組み合わせの枚数に応じて、異なるものである。
【００７８】
次に、減算的推論処理の最初の処理について説明する。前述のとおり、減算的推論処理の最初の処理において、システム１は、４０枚組カードから３９枚組カードを抽出する。
【００７９】
制御装置１０は、カードデッキ情報Ａが含むユーザの数量分の４０枚組カードの並び順をシャッフルする（ステップ２０１）。制御装置１０は、シャッフルした４０枚組カードをｓ個に分割し（ステップ２０２）、Ｘ40／ｓ通りの分割したカード組み合わせをｓ個のサーバの各々に割り当て、送信する（ステップ２０３）。
【００８０】
各演算装置２０は、制御装置１０からＸ40／ｓ通りの４０枚組カードを受信すると、Ｘ40／ｓ通りの４０枚組カードの各々において、記憶装置２４が記憶するカードデッキ情報Ａを参照することにより、受信した４０枚組カードの各々の出現頻度を算出する（ステップ２０４）。各演算装置２０は、ローカルフィルタリング処理により、第１の基準を満たす出現頻度が高いｋ枚組カードを抽出し（ステップ２０５）、制御装置１０へ送信する（ステップ２０６）。ただし各演算装置２０は、ステップ２０５を実行しなくてもよい。
【００８１】
制御装置１０は、演算装置２０の各々から受信した複数通りの４０枚組カードを集約する（ステップ２０７）。制御装置１０は、ステップ２０８及び２０９を実行せず、制御装置１０は、１枚少ない枚数のカード組み合わせである３９枚組カードを生成する（ステップ２１０）。ステップ２０７で集約した４０枚組カードの種類をＸ40´通りとすると、制御装置１０は、Ｘ40´通りの４０枚組カードの各々に対して４０枚組カードを構成するカードのうちの１つのカードを各々除いて新たな４０通りの３９枚組カードを生成する。このように制御装置１０は１通りの４０枚組カードから４０通りの３９枚組カードを生成するため、結果として制御装置１０は、Ｘ40´×４０通り（Ｘ39通り）の３９枚組カードを生成する。ただし、フィルタリング処理における閾値Ｔ２を調整することにより、制御装置１０がステップ２０８を実行するように構成されてもよい。
【００８２】
その後、制御装置１０は、ステップ２０１〜２１０を繰り返し実行することにより、任意のｋ枚組カードを抽出することができる。
【００８３】
次に、推論処理を構成する基本的な関数である、ｓｈｕｆｆｌｅ（），ｄｉｖｉｄｅ（），ａｌｌｏｃａｔｅ（），ｆｒｅｑ（），ｊｏｉｎ（），ｐｒｏｊｅｃｔｉｏｎ（），ｌｏｃａｌｆｉｌｔｅｒ（），ｇｌｏｂａｌｆｉｌｔｅｒ（），ｍｅｒｇｅ（）の、９つのプリミティブ関数を用いて、加算的推論処理の最初の処理について説明する。
【００８４】
１枚のカード分析におけるステップ１０１におけるシャッフル処理は、ゲーム内に存在する全カード集合Ｃによりｓｈｕｆｆｌｅ（Ｃ）と表され、並び替え後のＣ1を得る。ステップ１０２における分割処理は、ｄｉｖｉｄｅ（Ｃ1）と表され、ｓ個の部分集合［ｃ1，ｃ2，…，ｃs］を得る。ステップ１０３における割り当て処理は、ａｌｌｏｃａｔｅ（［ｃ1，ｃ2，…，ｃs］）と表される。
【００８５】
ステップ１０４における頻度計算処理は、ｉ番目の演算装置２０の部分集合ｃiと、ユーザが使用したすべてのデッキの集合Ａとを用いて、ｆｒｅｑ（Ａ，ｃi）と表され、Ｄ1,jを算出する。ここで、Ｄj,iは以下の式により表される。ｊは推論処理における次数を示し、ｆnはｎ番目のキーの出現頻度を示す。
2020141886.tif 000003
したがって、Ｄ1,jは、以下の式により表される。
2020141886.tif 000004
【００８６】
ステップ１０５におけるローカルフィルタリング処理は、フィルタの閾値ｔlを用いてｌｏｃａｌｆｉｌｔｅｒ（Ｄ1,j，ｔl）と表され、処理後のＤ1,j’を得る。ステップ１０７における集約処理は、ｍｅｒｇｅ（Ｄ1,1，Ｄ1,2，…，Ｄ1,S）と表され、頻度順にソートされて結合されたＤ1を得る。ステップ１０８におけるグローバルフィルタリング処理は、フィルタの閾値ｔ2を用いてｇｌｏｂａｌｆｉｌｔｅｒ（Ｄ1，ｔg）と表され、処理後のＤ1’を得る。これが加算的推論処理の最初の処理の結果となる。
【００８７】
２枚組のカード分析におけるステップ１１０におけるカード生成処理は、Ｄ1’のキー部分のみを抽出したｐｒｏｊｅｃｔｉｏｎ（Ｄ1’）と全カード集合Ｃにより、ｊｏｉｎ（ｐｒｏｊｅｃｔｉｏｎ（Ｄ1’），Ｃ）と表され、新たなカード集合Ｃ２を得る。
【００８８】
次に、本発明の実施形態によるシステム１の主な作用効果について説明する。システム１は、加算的推論処理及び減算的推論処理を実行できるように構成される。各推論処理において、ｋ枚組の組み合わせパターンを抽出する場合、各演算装置２０は、ローカルフィルタリング処理により、頻度を合計したときに全出現頻度の所定割合Ｔ１を充足することになる組み合わせを抽出して、全体の組み合わせの選択肢を削減する。制御装置１０は、グローバルフィルタリング処理により、全演算装置２０が算出した頻度情報を用いて、各クラスタ内の合計頻度の上限を、クラスタ内の全カード組み合わせの頻度合計×クラスタ頻度割合として設定する。グローバルフィルタリング処理は、当該処理後のカード組み合わせ数の目標Ｔ２を充足することになる組み合わせを抽出して、全体の組み合わせの選択肢を削減する。このように各クラスタ内において相対的に出現頻度の低いカード組み合わせを排除する構成とすることにより、大局的なバリエーションとしては元の集合の傾向を維持しながら、カード組み合わせパターン数を一定に抑制し、組み合わせ爆発を抑制することが可能となる。
【００８９】
本実施形態では、システム１は、直前の推論処理の結果、すなわち加算的推論処理においてはｋ−１枚組カードの抽出時の結果を用いて、フィルタリング処理における閾値Ｔ１、Ｔ２を決定する。システム１は、Ｚｉｐｆ構造の各組み合わせにおける頻度の強い偏りを活用することで、カードの組み合わせ数を大きく絞りながらも、総数への網羅性を維持することができる。本出願人は、実際のゲームで検証したところ、ある特定の組み合わせが出現頻度のほとんどを占めており、組み合わせ抽出という観点からは、このごく少数の高頻度に出現する組み合わせのみを分析すればよいことを確認した。更に加算的推論処理においては、数学的に、高い次数の組み合わせ頻度は、その組み合わせ内に内包する、より低い次数の組み合わせ頻度を超えないという特性がある。したがって、このような漸次的なフィルタリングにより、重要な組み合わせが棄却されないことが理解される。
【００９０】
また本実施形態では、１つの次数、例えば６枚組カードの抽出については、ストリーム処理として記述することが可能である。そのため、中間ファイル等を記憶装置に格納することなく、複数台の演算装置２０を用いたオンメモリの並列処理として容易に実装することができる。また本実施形態では、グローバルフィルタリング処理のみでは、膨大な数の候補を１ノード（制御装置１０）で処理することとなるため、システム１は、ローカルフィルタリング処理を含めた２段階構成によりカードの組み合わせを抽出している。これにより、計算するデータ量を統計的に抑制するため、高いスケーラビリティを実現することが可能となる。またグローバルフィルタリング処理を行うことにより、組み合わせの次数を上昇させた場合においても、高いスケーラビリティを実現することが可能となる。
【００９１】
システム１を上記のような構成とすることにより、従来は分析不可能だと思われていた組み合わせ爆発問題を網羅的に分析することが可能となる。従来のデッキ分析では、少数のサンプルを対象とした人手での分析やデータサイエンティストによる中規模程度のサイズのデータを対象とした統計処理が主な分析手法であったため、数十万人規模のデータを網羅的に分析することは困難であった。本出願人は、１３００種類のカードを４０枚組み合わせることにより構成されるカードデッキを対象として、プロセッサ２１として７２コアを有する１０台の演算装置２０を用いて、約３０万人のユーザのカードデッキを約８時間で分析できることを確認した。このように、制御装置１０及び複数台の演算装置２０を用いて、更にローカルフィルタリング及びグローバルフィルタリング処理を行うことにより、組み合わせ爆発が起きている状況でも現実的な時間で加算的及び減算的推論処理を実行することが可能となる。
【００９２】
また、記憶装置１４及び記憶装置２４が記憶するカードデッキ情報Ａを勝率が高いカードデッキ情報や上級者ユーザのカードデッキ情報とすることで、システム１は、勝率が高いデッキや上級者ユーザのデッキにおける出現頻度の高い任意のｋ枚組カードを抽出することが可能となる。このようにして、勝率が高いデッキ構築や上級者ユーザが習得しているデッキ構築のノウハウを学習することが可能となる。
【００９３】
システム１の応用例としては、以下に示すカードの組み合わせを活用したＱＡ、カードデッキ構築時の情報推薦、又はプレイ動画推薦などが考えられる。
【００９４】
カードの組み合わせを活用したＱＡを行うには、実際の人間が作りそうなカードの組み合わせを含むデッキを作成する必要があるが、従来、ランダムにデッキを生成する場合、膨大な数のデッキを検証する必要があった。本実施形態のシステム１を用いて、出現頻度の高いカードの組み合わせを優先的に用いることにより、効率的なＱＡを行うことが可能となる。
【００９５】
実際の人間が作りそうで、かつまだ使用されたことがないデッキを自動生成するには、カード同士がどのように組み合わされているかを把握し、組み合わせの頻度がそれほど高くない組み合わせの部分を別のカードに変更することが必要である。例えば次数の高い（例えば４０枚組カード）デッキが内包する、より次数の低い組み合わせ（例えば８枚組カード）の中から、出現頻度が下位５％にあたる組み合わせを別のカード組み合わせに差し替えることにより、自然なデッキを自動生成することが可能となる。このカードが、人間によってまだ使用されていないことが分かれば、このデッキをデバッグ対象として採用することは有意である。
【００９６】
１つの例では、デッキ生成装置は、次に示すビットアレイ比較の方式により、デッキがすでに使用されたことがあるかどうかを高速に判定し、カード組み合わせを入れ替えながら、効率的かつ自然にデッキを自動生成する。カード総数は２０００枚以下であるため、１つのデッキは、２０００ビットのビット配列で、すなわちｉｎｔ［１００］で十分に表現できる。デッキの出現パターンは大きな偏りがあるため、１０００万人のユーザが自由にデッキを構築し続けても、デッキの出現パターンは約１００万パターン程度に落ち着くことが想定される。したがって、デッキの出現パターンのデータは、ｉｎｔ［１００］（４００バイト）×１，０００，０００＝約３８１メガバイトと、十分にメモリに格納できるサイズの配列となる。またＩｎｔｅｌのＳＩＭＤ命令であるＡＶＸ５１２は、一度に２５６ビットの長さの２つのビットアレイのＡＮＤを算出することができるため、デッキ生成装置は、多くとも約１０回のＣＰＵサイクルで、デッキが出現したか否かの判定を行うことができる。デッキ生成装置は、出現していた場合に比較のための処理を中止することで、今まで一度も使われたことがないデッキを極めて高速に抽出することが可能となる。なお、デッキ生成装置は、１又は複数のコンピュータにより構成されるが、制御装置１０をデッキ生成装置として機能させてもよい。
【００９７】
また従来、カードデッキ構築時にカードを推薦することは難しかった。例えばカード総数が１０００枚以上ある場合、ユーザはすべてのカードを把握することが極めて困難である。１つの例では、デッキ推薦装置は、ある特定の組み合わせのカードを所有するユーザを対象として、別のカードを生成すると、強いカードの組み合わせとなることを推薦する。例えばデッキ推薦装置は、カード生成画面等において、他ユーザが高頻度で使用しているカード組み合わせを構成するカードを一部だけ所有しているユーザに、当該カード組み合わせを構成する一部以外の１又は複数のカードを推薦することができる。これにより、ユーザは、どのようなカードを生成するとゲームをより有利に進めることができるかをゲーム内でシームレスに認識することができるようになる。なお、デッキ推薦装置は、１又は複数のコンピュータにより構成されるが、ゲームサーバをデッキ推薦装置として機能させてもよい。
【００９８】
また従来、カードゲーム初心者のユーザは、カードそれぞれの役割を理解しても、その組み合わせを考案することは難しかった。プレイ動画推薦装置は、カードの活用方法が分かるプレイ動画をカードの所有者であるユーザに推薦する。プレイ動画は、特許第６４３８６１２号が開示するＡＩボットによるプレイログでもよい。なお、プレイ動画推薦装置は、１又は複数のコンピュータにより構成されるが、ゲームサーバをプレイ動画推薦装置として機能させてもよい。
【００９９】
例えば、プレイ動画推薦装置は、プレイログ中に高頻度で出現するカード組み合わせのカードをデッキに含むユーザが、そのカード組み合わせを活用できていないときに、そのカード組み合わせを活用する場面のリプレイ動画を推薦する。ユーザがカード組み合わせを活用できていないことは、当該ユーザのゲームログにおけるカード組み合わせの出現頻度が低いことから判定することができる。これにより、ユーザは、ゲーム内でシームレスにカードの新しい戦術を知ることができる。
【０１００】
本実施形態のシステム１は、デッキ分析のみに特化したシステムではなく、ゲームサーバのアクセスログの分析にも使用することができる、汎用的な組み合わせ分析のシステムの基盤となる方式である。これは、システム１が、有限の要素からなる集合内の、要素の組み合わせを分析する機能を提供するためであり、ゲームのように、有限の要素の組み合わせで面白さを実現するシステムに、幅広く適用可能な方式である。ゲーム全般のログ分析に本発明を応用する方式としては、カードの代わりに、ゲームがアクセスするサーバ側のエンドポイントＵＲＬを、識別子として用いる。例えば、ゲームサーバのＡＰＩのＵＲＬは、https://game.com/API/start、https://game.com/API/battle、https://game.com/API/story/1、のように、特定のゲームシーンと紐づいた識別子として機能する。また、ゲームサーバは、どのユーザがどの順番でこのＵＲＬにアクセスしているかを示すアクセスログを常時記録する。したがって、例えば１時間や１日間などの単位時間内に、ある特定のユーザがどのようなエンドポイントＵＲＬにアクセスしているかを分析することにより、システムは、ユーザが好むコンテンツの組み合わせをユーザへ向けて推薦することができる。例えば、毎日プレイするユーザが好むコンテンツの組み合わせをゲームから離脱しそうなユーザへ向けて推薦するようにシステムが実装されることにより、離脱防止を図ることが可能となる。
【０１０１】
上記の作用効果は、特に言及が無い限り、他の実施形態や他の実施例においても同様である。
【０１０２】
本発明の他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムや該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する仮想マシンとすることもできる。
【０１０３】
１つの例では、制御装置１０及び各演算装置２０は、推論処理に関するフラグを共有し、フラグの値に応じて、加算的推論処理及び減算的推論処理を実行するように構成される。
【０１０４】
１つの例では、演算装置２０がｒ個のコア数を備えるプロセッサ２１を備える場合、ステップ１０４の前に、制御装置１０から受信した複数通りのｋ枚組カードを、ｒ個の部分集合に分割する。ステップ１０４で各コアが頻度計算を行った後、演算装置２０は、ステップ１０５の前に、各コアから受け取ったｋ枚組カード及び頻度情報を結合してソートして並べることにより、集約する。例えば演算装置２０は、複数通りのｋ枚組カードを出現頻度が高い順番に並べ替える。このような構成とすることにより、推論処理をより高速化することができる。
【０１０５】
以下に本発明の実施形態の変形例について説明する。以下で述べる変形例は、矛盾が生じない限りにおいて、適宜組み合わせて本発明の任意の実施形態に適用することができる。
【０１０６】
１つの変形例では、システム１は、加算的推論処理又は減算的推論処理の一方の機能のみを有する。このような構成であっても、システム１は、少なくとも一部の枚数における出現頻度の高いカード組み合わせを抽出することが可能である。
【０１０７】
１つの変形例では、システム１は、加算的推論処理においても出現頻度の高いＮ／２枚より多い枚数のカード組み合わせを抽出し、減算的推論処理においても出現頻度の高いＮ／２枚以下の枚数のカード組み合わせを抽出する。
【０１０８】
１つの変形例では、制御装置１０は、ステップ１０１及びステップ２０１を実行しない。或いは、制御装置１０は、所定の基準に従って、ｋ枚組カードの順番を並び替える。ただし、カード組み合わせが偏った並び順となることを避けるため、制御装置１０がステップ１０１及びステップ２０１を実行する実施形態が好ましい。
【０１０９】
１つの変形例では、第１の基準は、出現頻度が高いｋ枚組カードから順に選択した場合に、選択されたｋ枚組の出現頻度の合計が、予め設定された所定値となるまでに選択されることである。
【０１１０】
１つの変形例では、制御装置１０は、ステップ１０８において集約した複数通りのｋ枚組カードを複数のクラスタにクラスタリングするにあたって、隣接するｋ枚組カードが所定数以上の共通するカードを有する場合に、それらのｋ枚組カードを１つのクラスタとして設定する。１つの変形例では、制御装置１０は、ステップ１０８において集約した複数通りのｋ枚組カードを複数のクラスタにクラスタリングするにあたって、他の既知のクラスタリング方法を用いて、複数のクラスタにクラスタリングする。
【０１１１】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【０１１２】
１  システム
２  ネットワーク
１０  制御装置
１１  プロセッサ
１２  入力装置
１３  出力装置
１４  記憶装置
１５  通信装置
１６  バス
２０  演算装置
２１  プロセッサ
２２  入力装置
２３  出力装置
２４  記憶装置
２５  通信装置
２６  バス
４０  ゲーム画面
４１  カード
４２  第１のカード群
４３  ゲームフィールド
４４  第２のカード群
４５  キャラクタ
【図１】
2020141886.tif 000005
【図２】
2020141886.tif 000006
【図３】
2020141886.tif 000007
【図４】
2020141886.tif 000008
【図５】
2020141886.tif 000009
【図６】
2020141886.tif 000010
【図７】
2020141886.tif 000011
【図８】
2020141886.tif 000012
【図９】
2020141886.tif 000013
【図１０】
2020141886.tif 000014
【手続補正書】
【提出日】令和2年1月30日(2020.1.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステムであって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
各々が、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を記憶する複数の演算装置と、
前記所有媒体群情報を記憶し、かつ前記演算装置の各々の動作の並列処理を制御する制御装置であって、抽出した複数の媒体からなる組を前記演算装置の各々に割り当てて送信する制御装置と、を備え、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、
前記制御装置は、前記演算装置の各々から受信した組を集約し、該集約した組を複数のクラスタにクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して前記媒体集合が含む媒体を各々結合して複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、
システム。
【請求項２】
前記制御装置は、複数の媒体からなる組を前記演算装置の各々に割り当てて送信する前に、前記媒体集合が含む媒体を前記演算装置の各々に割り当てて送信し、該演算装置の各々は、前記所有媒体群情報を参照することにより該制御装置から受信した媒体の各々の出現頻度を算出し、該受信した媒体から所定の基準を満たす出現頻度が高い媒体を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した媒体を集約し、該集約した媒体の各々に対して前記媒体集合が含む媒体を各々結合して複数の２つの媒体からなる組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、請求項１に記載のシステム。
【請求項３】
前記制御装置は、媒体又は組を前記演算装置の各々に割り当てる前に該媒体又は組の並び順をシャッフルするように構成される、請求項２に記載のシステム。
【請求項４】
前記制御装置は、前記所有媒体群情報が含む複数のユーザの所有媒体群から、複数のＮ個の媒体からなる組を抽出し、該抽出した組を前記演算装置の各々に割り当てて送信し、該演算装置の各々は、前記所有媒体群情報を参照することにより該制御装置から受信した組の各々の出現頻度を算出し、該受信した組から前記第１の基準を満たす出現頻度が高い媒体を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した組を集約して出力することができるとともに、該集約した組の各々に対して該集約した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成され、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、前記第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、該制御装置は、該演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに前記第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、
請求項１から３のいずれか１項に記載のシステム。
【請求項５】
前記第１の基準は、出現頻度が高い組から順に選択した場合に、選択された組の出現頻度の合計が、前記算出された組の出現頻度の合計の所定割合となるまでに選択されることである、請求項１から４のいずれか１項に記載のシステム。
【請求項６】
前記制御装置は、前記演算装置の各々から受信した組を、出現頻度が高い順に並び替えて集約し、凝集型階層的クラスタリングを適用することにより該集約した組を複数のクラスタにクラスタリングする、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
前記制御装置は、前記集約した組を複数のクラスタにクラスタリングするにあたって、該集約した組において隣接する組が所定数以上の共通する媒体を有する場合に１つのクラスタとして設定する、請求項１から６のいずれか１項に記載のシステム。
【請求項８】
前記制御装置は、前記第２の基準を満たす出現頻度が高い媒体の組を抽出するにあたって、各々のクラスタごとに、該クラスタに設定された組の出現頻度の合計からクラスタ頻度割合を算出できるように構成され、
前記第２の基準は、出現頻度が高い組から順に選択した場合に、選択された組の出現頻度の合計が、クラスタ頻度割合に基づいた所定値となるまでに選択されることである、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
前記所定の基準は、出現頻度が高い媒体から順に選択した場合に、選択された媒体の出現頻度の合計が、前記算出された媒体の出現頻度の合計の所定割合となるまでに選択されることである、請求項２に記載のシステム。
【請求項１０】
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するための方法であって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
制御装置において、抽出した媒体又は複数の媒体からなる組を演算装置の各々に割り当てて送信するステップと、
前記演算装置の各々において、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信するステップと、
前記制御装置において、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出するステップと、
前記抽出した組の各々に対して前記媒体集合が含む媒体を各々結合して複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信するステップと、
を有する、方法。
【請求項１１】
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステムであって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
各々が、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を記憶する複数の演算装置と、
前記所有媒体群情報を記憶し、かつ前記演算装置の各々の動作の並列処理を制御する制御装置であって、複数の媒体からなる組を前記演算装置の各々に割り当てて送信する制御装置と、を備え、
前記演算装置の各々は、前記所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信し、
前記制御装置は、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出することができるとともに、該抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信することができるように構成される、
システム。
【請求項１２】
Ｎ個の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおいて、所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するための方法であって、所有媒体群が含む媒体の各々は予めゲームに設定された媒体集合から各々選択されたものであり、
制御装置において、複数の媒体からなる組を演算装置の各々に割り当てて送信するステップと、
前記演算装置の各々において、所定の複数のユーザが使用する所有媒体群に関する所有媒体群情報を参照することにより前記制御装置から受信した組の各々の出現頻度を算出し、第１の基準を満たす出現頻度が高い組を抽出して該制御装置へ送信するステップと、
前記制御装置において、前記演算装置の各々から受信した組を集約し、該集約した組を複数の組にクラスタリングし、各々のクラスタごとに第２の基準を満たす出現頻度が高い組を抽出するステップと、
前記抽出した組の各々に対して該抽出した組を構成する媒体のうちの１つの媒体を各々除いて複数の新たな組を生成し、該生成した組を前記演算装置の各々に割り当てて送信するステップと、
を有する、方法。