(57)【要約】【課題】複数の局面を有するゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを構築する。【解決手段】少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤが、いずれかの勝利が決定されるまでの進行において複数の局面を有するゲームを実行する情報処理システム等であって、その仮想プレイヤが、複数の局面の中で進行中の局面がいかなる局面であるかを判定し、判定した局面に対応し、ゲームのルールに従ったプレイ方策に基づいて、他のプレイヤに対応してプレイを実行することを含む情報処理システム等を提供する。【選択図】図５
2019083997.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤがゲームを実行する情報処理システムにおいて、
前記ゲームは、前記プレイヤのいずれかの勝利が決定されるまでの進行において複数の局面を有し、
前記ゲームのルールを記憶するゲームルール記憶部と、
前記ゲームルール記憶部が記憶するルールに基づいた、それぞれの前記局面において異なるプレイ方策を記憶するプレイ方策記憶部と、
前記複数の局面の中で進行中の局面がいかなる局面であるかを判定する局面判定部と、
前記局面判定部が判定した局面に対応する前記プレイ方策記憶部に記憶されたプレイ方策に基づいて、前記仮想プレイヤが他のプレイヤに対応してプレイを実行するプレイ方策実行部と、
を備える情報処理システム。
【請求項２】
前記ゲームは、麻雀であり、
前記プレイ方策記憶部に記憶されるプレイ方策は、少なくとも、降り方策、アガリ方策、形式テンパイ方策、包括方策、および価値推定方策を含み、
前記価値推定方策は、前記プレイ方策記憶部に記憶される他のプレイ方策において算出した結果の全部または一部を特徴量とし、機械学習を用いてアガリ確率、形式テンパイ確率、放銃確率を推定して価値推定を行う、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤがゲームを実行する情報処理装置において、
前記ゲームは、前記プレイヤのいずれかの勝利が決定されるまでの進行において複数の局面を有し、
前記ゲームのルールを記憶するゲームルール記憶部と、
前記ゲームルール記憶部が記憶するルールに基づいた、それぞれの前記局面において異なるプレイ方策を記憶するプレイ方策記憶部と、
前記複数の局面の中で進行中の局面がいかなる局面であるかを判定する局面判定部と、
前記局面判定部が判定した局面に対応する前記プレイ方策記憶部に記憶されたプレイ方策に基づいて、前記仮想プレイヤが他のプレイヤに対応してプレイを実行するプレイ方策実行部と、
を備える情報処理装置。
【請求項４】
少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤが、いずれかの勝利が決定されるまでの進行において複数の局面を有するゲームを実行する情報処理装置を、
前記ゲームのルールを記憶するゲームルール記憶部と、
前記ゲームルール記憶部が記憶するルールに基づいた、それぞれの前記局面において異なるプレイ方策を記憶するプレイ方策記憶部と、
前記複数の局面の中で進行中の局面がいかなる局面であるかを判定する局面判定部と、
前記局面判定部が判定した局面に対応する前記プレイ方策記憶部に記憶されたプレイ方策に基づいて、前記仮想プレイヤが他のプレイヤに対応してプレイを実行するプレイ方策実行部と、
して機能させるためのプログラム。
【請求項５】
請求項４に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項６】
少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤが、いずれかの勝利が決定されるまでの進行において複数の局面を有するゲームを実行する情報処理方法であって、
前記仮想プレイヤが、
前記複数の局面の中で進行中の局面がいかなる局面であるかを判定することと、
判定した局面に対応し、前記ゲームのルールに従ったプレイ方策に基づいて、他のプレイヤに対応してプレイを実行することと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法、プログラム、および情報記憶媒体に関する。
【背景技術】
【０００２】
ゲームは勝敗が明確に定まるため、古くから人工知能（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ、以下ＡＩと言う）の研究の対象とされてきた。中でも多くの完全情報ゲームにおいて、ＡＩは人間のトッププレイヤと互角以上に戦う強さを持つ。偶然の要素がゲームの進行に本質的な影響を与えない二人ゼロ和確定ゲームについては、チェスにおいて１９９０年代にディープ・ブルーが世界チャンピオンを破り、よりゲーム木の大きい将棋についても２０１５年に情報処理学会はトッププロ棋士にＡＩが勝ち越す可能性が高いとして、コンピュータ将棋プロジェクトの終了を宣言した。これらの背景にはα−β法によるゲーム木の探索や、駒の位置関係から評価関数を算出するための機械学習手法などの発展があった。また、これよりさらにゲーム木が大きくゲームの性質も大きく異なる囲碁においても、モンテカルロ木探索や深層学習を用いて２０１６年にＡｌｐｈａ  Ｇｏが人間のトッププロに勝ち越すに至った。
【０００３】
不確定ゲームも二人ゼロ和であれば、偶然の要素を含むゲームにおいてもバックギャモンでは２０００年代に人間のトッププレイヤと互角以上に戦う強さになったと考えられていて、強化学習の成功例として知られている。
【０００４】
一方で不完全情報ゲームは、完全情報ゲームほど研究が進んでいない。例えば、状態数が比較的少ない２人テキサス・ホールデムは２０１４年にＣＦＲ＋によって近似解が得られたが、情報集合数がより多い３人以上のテキサス・ホールデムには適用が困難であると考えられている。このようなゲームにおいては、プレイヤの行動や情報を抽象化することでゲームの大きさを削減する手法が提案されている。この手法は、はじめにゲームの抽象化を行い、抽象化されたゲーム木における最適行動を求め、それを何らかの手法で抽象化する前の行動へ写像する手法であり、ポーカー等で一定の成功を収めている。
【０００５】
麻雀も、通常４人で行う多人数不完全情報ゲームであり、１回のゲームが終わった際に各プレイヤは点数と順位に応じた利得を得る。通常１回のゲームは複数の局からなり、１局はプレイヤの誰かがアガリをするか、牌山が無くなるなどの理由で流局するかで終了する。１局の終わり方に応じて、プレイヤ間の点数状況が変化し、最終局終了時点で点数が多い順に１回のゲームの順位が決定する。１つの局でアガリを行うことができるのは基本的に１人のプレイヤに限られることから、他プレイヤ（他家）よりも早くアガリの手牌を作る技術は麻雀の実力を決める重要な要素である。また、点数の高いアガリ形ほど一般的には作りにくく、プレイヤは現在の点数の状況や、他家の手牌の進行を考慮に入れたうえで、どのようなアガリを目指すか考える必要がある。確定完全情報ゲームの場合と異なり、プレイヤは他プレイヤがアガリをすることができるかどうか知ることができないため、打牌やフーロの選択を行う際に、その選択を行った後のアガリ確率や利得期待値を高い精度で推定することは麻雀のＡＩを作る上で重要な課題である。
【０００６】
他家の行動をほとんど無視して自分のアガリだけを考える１人麻雀では、終端節点の利得を設定することで、その期待値を最大化する定式化が比較的容易になる。また、終端節点の利得を局終了時の順位点期待値とすることで、点数状況に応じたアガリを目指すことが可能になる。その一方で、１人麻雀はゲーム木のサイズが非常に大きいという難点を持つ。
【０００７】
発明者は、先行研究において、この問題を解決するため、ゲーム木を有向非巡回グラフ（ＤＡＧ：Ｄｉｒｅｃｔｅｄ  Ａｃｙｃｌｉｃ  Ｇｒａｐｈ）を用いて近似的に表現するモデルを提案した（非特許文献１）。このモデルでは、ゲーム木の１つ以上の節点を、手牌ｑと打牌回数ｔとゲーム進行のフェーズにもとづいて１つのＤＡＧの節点にまとめる。ゲーム木の簡略化は麻雀のルールに基づいて行い、終端節点の利得の設定も点数のみを特徴量とした機械学習を用いて行うことができるため、麻雀の高い専門知識を直接コーディングすることなしに強い人工知能（ＡＩ）を開発することが可能になる。
【０００８】
現状トッププレイヤ以上の強さを持つＡＩが開発されたとは言い難い状況で、強化学習のようにＡＩに大量の自己対局を行わせてその結果を学習する方法も確立されていない。実際、麻雀には強いコンピュータのプレイヤの構築を困難にする複数の性質があると考えられる。１つめは非常に大きなゲーム木を持つという性質である。麻雀ではプレイヤが行動を選択する前に、常にツモや他家（自分以外のプレイヤ）の打牌などに偶然の要素が影響を与え、牌種も３０種類以上存在するためゲーム木のサイズが膨大になってしまう。
【０００９】
２つめは、複数の局からなる半荘で勝つという長期的な目的を達するためには、各局で短期的な目的を適切に設定しなければならないという性質である。麻雀では一局の中でアガリを行うことを目指すべきか、放銃しないことを目指すべきかの選択を適切に行うことが要求され、これらの各局の状況を統一的なゲーム木として抽象化することは困難である。
【００１０】
３つめは局を終了させるアガリに関するルールが複雑であるという性質である。麻雀には数十種類の役が存在し、それぞれで異なるアガリ点数が定められている。そのため、探索を行わない静的評価関数を麻雀で実現することを試みる場合、各役に対応した特徴量を設計する必要があり、これはＡＩ開発者に麻雀の技術を要求するだけでなく、前述の困難も合わさって特徴量の次元が大きくなる。
【００１１】
４つめはプレイヤの実力評価が難しいという性質である。麻雀では正しい選択をしたかによらず運が良いプレイヤが勝ってしまうことが珍しくない。結果的に２つの異なるＡＩの強さを比較する段階で、多くの数の対局を行う必要性が生じる。実際、あるプレイヤがＮ回の対局を行った場合の平均順位の標準誤差はおよそ√（１．２５／Ｎ）程度であり、Ｎ＝１０００として０．０３５である。天鳳の鳳凰卓では、最上位プレイヤの平均順位が２．４０程度であり、このようなレベルに達した２プレイヤ間で実力を比較するためには多くの試行が必要である。このような困難は、対局結果にもとづいてパラメータ一式の更新や調整を行う強化学習において特に顕著にあらわれるであろう。前述のとおり、麻雀の評価関数の次元は大きくなりやすく、各パラメータを適切に収束させるために必要なデータの量は、パラメータの数だけでなく、麻雀そのものが持つ運の要素の寄与で大きくなる。これらの困難があるためか、評価関数のパラメータを対局の結果から学習する手法は、強いＡＩを作る目的では現在成功していない。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】栗田萌、保木邦仁  「１人麻雀の有向非巡回グラフを用いた近似表現」  情報処理学会研究報告  ＧＩ、Ｖｏｌ．２０１７−ＧＩ−３７、Ｎｏ．１４、ｐｐ．１−８、２０１７
【発明の概要】
【発明が解決しようとする課題】
【００１３】
そこで、本発明では、複数の局面を有するゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを構築することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤがゲームを実行する情報処理システムにおいて、そのゲームは、プレイヤのいずれかの勝利が決定されるまでの進行において複数の局面を有し、そのゲームのルールを記憶するゲームルール記憶部と、ゲームルール記憶部が記憶するルールに基づいた、それぞれの局面において異なるプレイ方策を記憶するプレイ方策記憶部と、複数の局面の中で進行中の局面がいかなる局面であるかを判定する局面判定部と、局面判定部が判定した局面に対応するプレイ方策記憶部に記憶されたプレイ方策に基づいて、仮想プレイヤが他のプレイヤに対応してプレイを実行するプレイ方策実行部と、を備える情報処理システムが提供される。
これによれば、複数の局面を有するゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを含む情報処理システムを提供することができる。
【００１５】
さらに、ゲームは、麻雀であり、プレイ方策記憶部に記憶されるプレイ方策は、少なくとも、降り方策、アガリ方策、形式テンパイ方策、包括方策、および価値推定方策を含み、価値推定方策は、プレイ方策記憶部に記憶される他のプレイ方策において算出した結果の全部または一部を特徴量とし、機械学習を用いてアガリ確率、形式テンパイ確率、放銃確率を推定して価値推定を行うことを特徴としてもよい。
これによれば、麻雀ゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを構築することができる。
【００１６】
上記課題を解決するために、少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤがゲームを実行する情報処理装置において、そのゲームは、プレイヤのいずれかの勝利が決定されるまでの進行において複数の局面を有し、そのゲームのルールを記憶するゲームルール記憶部と、ゲームルール記憶部が記憶するルールに基づいた、それぞれの局面において異なるプレイ方策を記憶するプレイ方策記憶部と、複数の局面の中で進行中の局面がいかなる局面であるかを判定する局面判定部と、局面判定部が判定した局面に対応するプレイ方策記憶部に記憶されたプレイ方策に基づいて、仮想プレイヤが他のプレイヤに対応してプレイを実行するプレイ方策実行部と、を備える情報処理装置が提供される。
これによれば、複数の局面を有するゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを含む情報処理装置を提供することができる。
【００１７】
上記課題を解決するために、少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤが、いずれかの勝利が決定されるまでの進行において複数の局面を有するゲームを実行する情報処理装置を、そのゲームのルールを記憶するゲームルール記憶部と、ゲームルール記憶部が記憶するルールに基づいた、それぞれの局面において異なるプレイ方策を記憶するプレイ方策記憶部と、複数の局面の中で進行中の局面がいかなる局面であるかを判定する局面判定部と、局面判定部が判定した局面に対応するプレイ方策記憶部に記憶されたプレイ方策に基づいて、仮想プレイヤが他のプレイヤに対応してプレイを実行するプレイ方策実行部として機能させるためのプログラムが提供される。また、上記課題を解決するために、上記のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体が提供される。
これによれば、複数の局面を有するゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを含むプログラムおよびそのプログラムを含む記憶媒体を提供することができる。
【００１８】
上記課題を解決するために、少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤが、いずれかの勝利が決定されるまでの進行において複数の局面を有するゲームを実行する情報処理方法であって、その仮想プレイヤが、複数の局面の中で進行中の局面がいかなる局面であるかを判定することと、判定した局面に対応し、ゲームのルールに従ったプレイ方策に基づいて、他のプレイヤに対応してプレイを実行することと、を含む情報処理方法が提供される。
これによれば、複数の局面を有するゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを含む情報処理方法を提供することができる。
【発明の効果】
【００１９】
以上説明したように、本発明によれば、複数の局面を有するゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを構築することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明に係る１人麻雀のゲーム進行のフェーズの例を示す。
【図２】本発明にて用いる非公開牌種のハッシュ関数の例を示す。
【図３】本発明にて用いるＤＡＧの枝列挙アルゴリズムの例を示す。
【図４】本発明にて用いる期待利得とアガリ確率の計算アルゴリズムの例を示す。
【図５】本発明に係る複数の１人麻雀の選択のフローチャートの例を示す。
【図６】本発明に係る各種１人麻雀から価値関数を計算する仕組みの例を示す。
【図７Ａ】本発明に係る第一実施形態の情報処理システムを示す概略構成図（システム構成図）である。
【図７Ｂ】本発明に係る第一実施形態の情報処理システムにおけるサーバ装置の概略構成図（ハード構成および機能構成図）である。
【図７Ｃ】本発明に係る第一実施形態の情報処理システムにおけるパーソナルコンピュータの概略構成図（ハード構成および機能構成図）である。
【図７Ｄ】本発明に係る第一実施形態の情報処理システムにおける携帯端末の概略構成図（ハード構成および機能構成図）である。
【図８Ａ】本発明に係る第二実施形態の情報処理システムを示す概略構成図（システム構成図）である。
【図８Ｂ】本発明に係る第二実施形態の情報処理システムにおけるファイルサーバ装置の概略構成図（ハード構成および機能構成図）である。
【図８Ｃ】本発明に係る第二実施形態の情報処理システムにおけるパーソナルコンピュータ（ハード構成および情報処理装置）の概略構成図（機能構成図）である。
【図８Ｄ】本発明に係る第二実施形態の情報処理システムにおける携帯端末（情報処理装置）の概略構成図（ハード構成および機能構成図）である。
【図９】本発明に係る第二実施形態の情報処理装置における情報処理の概要を示すフローチャート。
【発明を実施するための形態】
【００２１】
本実施形態では、多人数不完全情報ゲームの代表的存在である麻雀を中心にして説明するが、本発明は、これに限定されるものではなく、他の多人数不完全情報ゲームである例えば３人以上のテキサス・ホールデムに適用可能である。
＜麻雀のルールと用語の説明＞
まず、麻雀のルールと用語について説明する。麻雀は初めに一定数の牌が配られ、そこからルールで定められた方法で牌を１枚ずつ交換し、役と呼ばれる特定の構成を作り和了（アガリ）し、役に応じた点数を得るゲームである。麻雀では１３６枚の牌を利用し、この中には３４の牌種が４枚ずつ入っている。牌種には７つの字牌と２７の数牌があり、数牌は３つの色に分類される。初めに各プレイヤに１３枚の牌が配られ、配られなかった牌は牌山に伏せられる。アガリの点数は直前の手牌と最後に入手した牌とその入手方法に依存し、牌山から１枚牌を引いた場合をツモアガリ、他プレイヤ（他家）が捨てた牌を利用する場合をロンアガリという。
【００２２】
牌を交換する方法としては、牌山から１枚牌を引く（ツモ）方法と、他プレイヤ（他家）が捨てた牌を入手（フーロ）する方法がある。交換の場合は牌を入手した後不要な牌を１枚場に捨てる。特殊な役を除き、アガリ手牌は１つの対子（トイツ）と４つの面子（メンツ）とからなる。対子とは同じ牌種の２枚組のことであり、面子とは特定の条件を満たす３枚または４枚の牌の組である。同じ牌種３枚からなる面子を刻子（コーツ）といい、連続する数字の数牌３枚からなる面子を順子（シュンツ）という。これらのメンツの最後の１枚を他家の捨て牌からフーロにより入手することができて、このフーロを刻子の場合ポン、順子の場合チーという。フーロによって完成したメンツは他家から見えるように場に晒す。フーロによって完成した刻子を明刻（ミンコー）、フーロせずに完成した刻子を暗刻（アンコー）という。また、あまり一般的な語ではないがフーロによって完成した順子を明順（ミンシュン）という。
【００２３】
同じ牌種４枚からなる面子を槓子（カンツ）という。明刻と同じ牌種を自分の手牌から場に出して槓子にする操作を加カン、暗刻から他家の捨て牌を入手して槓子とするフーロを大明カン、フーロせずに揃えた手牌の中の同一牌種４枚を槓子として扱うことを宣言することを暗カンという。暗カンは他家の捨牌を入手する方法ではないが、本明細書ではこれもフーロと見做す。加カン、大明カンによって完成した槓子を明槓といい、暗カンにより完成した槓子を暗槓という（本明細書では、フーロとしてのカンをカタカナで、面子としての槓を漢字で表記する）。
【００２４】
手牌が面子４つと対子１つになった場合これをアガリ形といい、あと１枚でアガリ形になる手牌をテンパイという。通常テンパイは役がある場合をさすが、役が無い場合形式テンパイという。通常のアガリ形ではないアガリも存在し、あと１枚でそのアガリになる場合もテンパイというが、その説明は省く。テンパイになるまでに必要な牌交換回数の最小値を手牌のシャンテン数という。
【００２５】
また、特定の条件下においてプレイヤはリーチを行うことができ、これは１０００点を支払う必要があるが役になる。この１０００点はその局でアガリした人が得る。牌山が無くなるまで誰もアガリしなかった場合を流局といい、各プレイヤの最後の手牌の形に応じた点数を各プレイヤが得る。リーチしたプレイヤがいる場合、支払われた１０００点は次の局でアガリしたプレイヤの点数となる。
【００２６】
以上を一つの局として、複数の局を行いルールが定める最後の局を終了したときの点数の多さに応じて順位が決まる。一般的なルールでは開始時の各プレイヤの点数は２５０００点からはじまり、局は場と局数で分類される。東風戦では東１局から東４局までを、東南戦では東１局から南４局までを行い、最終局が終了した時に３００００点を超えているプレイヤがいない場合追加で局が行われる。東風戦、東南戦でそれぞれ南入、西入という。この場合誰かが３００００点を超えた時点で終了となるが、誰も３００００点を超えずに南４局、西４局が終局した場合も終了とする。最終局が終了した時の順位に応じて、各プレイヤに順位点が配分され、プレイヤの最終的な利得は順位点と点数に応じて決まる。順位点をゲームの最終結果と捉える対戦ルールも広く普及していることから、本明細書では順位点をゲームの利得とする。なお、ここで述べた麻雀ゲームのルールは一例であり、様々なバリエーションがあるので、これに限定されるものではない。
【００２７】
＜先行技術の説明＞
１人麻雀において、現在までに提案されたアガリを目指す手法には、ニューラルネットワークやパーセプトロンなどの機械学習を用いて上級プレイヤの行動を予測するものがある（北川竜平、三輪誠、近山隆  「麻雀の牌譜からの打ち手評価関数の学習」  第１２回ゲームプログラミングワークショップ、ｐｐ．７６−８３、２００７。水上直紀、中張遼太郎、浦晃、三輪誠、鶴岡慶雅、近山隆  「多人数性を分割した教師付き学習による四人麻雀プログラムの実現」  情報処理学会論文誌  Ｖｏｌ．５５  Ｎｏ．１１  ｐｐ．１１１、２０１４）。モンテカルロ法やタブーサーチを用いてゲームの試行や木探索をするものがある（小松智希、成澤和志、篠原歩  「役を構成するゲームに対する効率的な行動決定アルゴリズムの提案」  情報処理学会研究報告  ＧＩ、Ｖｏｌ．２０１２−ＧＩ−２８、Ｎｏ．８  ｐｐ．１−８、２０１２。吉村健志、宝珍輝尚、野宮浩揮  「タブーサーチを用いた麻雀における最適行動の探索」  第２１回ゲームプログラミングワークショップ、ｐｐ．７３−８０、２０１６）。機械学習を用いる手法では、ゲームの試行や木探索を行わないため意思決定に時間がかからないという長所があるものの、点数状況に応じたアガリを目指すことが難しいことが報告されている。一方で、モンテカルロ法やタブーサーチを用いて探索を行うような手法では１人麻雀での最適な行動を求め得るが、現在までに降りを目指す方策も考慮した実践的なＡＩの作成には至っていない。これは、ゲーム木のサイズが大きすぎるためにモンテカルロ法の収束が遅いことなどが原因と考えられる。
【００２８】
一方で、アガリを目指すだけでは中級者以上の実力を実現することは不可能と考えられるが、降りの戦略を含めた麻雀ＡＩの研究は例が少ない。そのような研究の例として、５０００以上の局面に対して降りるべき局面を開発者が手動でラベル付けし、その結果を元に機械学習を行う水上らの研究がある（水上直紀、中張遼太郎、浦晃、三輪誠、鶴岡慶雅、近山隆  「降りるべき局面の認識による１人麻雀プレイヤの４人麻雀への適用」  第１８回ゲームプログラミングワークショップ、ｐｐ．１−７、２０１３）。また、この手法とモンテカルロ法による試行を併用することで、中級者以上の実力を持ったＡＩが実現されている（Ｎａｏｋｉ  Ｍｉｚｕｋａｍｉ  ａｎｄ  Ｙｏｓｈｉｍａｓａ  Ｔｓｕｒｕｏｋａ.  Ｂｕｉｌｄｉｎｇ  ａ  Ｃｏｍｐｕｔｅｒ  Ｍａｈｊｏｎｇ  Ｐｌａｙｅｒ  Ｂａｓｅｄ  ｏｎ  Ｍｏｎｔｅ  Ｃａｒｌｏ  Ｓｉｍｕｌａｔｉｏｎ  ａｎｄ  Ｏｐｐｏｎｅｎｔ  Ｍｏｄｅｌｓ.  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１５  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅｏｎ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  ａｎｄ  Ｇａｍｅｓ、ｐｐ．２７５−２８３、２０１５）。降りるべき局面の判別に関しては、ラベル付けを人手で行うにはコストがかかるという動機から、半教師あり学習を用いて判別する研究も報告されているが（我妻敦、田中哲朗  「半教師あり学習による麻雀の降り局面の判別」  第２０回ゲームプログラミングワークショップ、ｐｐ．１４３−１４７、２０１５）、包括的な麻雀ＡＩに利用されているという報告はされていない。
【００２９】
１人麻雀はその有効性が示されているものの、いくつかの課題が存在する。まず、点数状況に応じたアガリを目指すことができていないことが挙げられる。手牌からアガリ点数を予測するモデルを用いた強化学習を行った水上らの研究で、既存のプログラム（点数状況に応じたアガリを目指すことができないもの）に勝ち越すことができなかったと報告されている（水上直紀、鶴岡慶雅  「強化学習を用いた効率的な和了を行う麻雀プレイヤ」  第２１回ゲームプログラミングワークショップ、ｐｐ．８１−８８、２０１６）。また、機械学習に用いる特徴は麻雀の専門知識に基づき設計されるものが多く、ＡＩ開発の敷居が高いことも挙げられる。
【００３０】
＜抽象化した１人麻雀のルール＞
通常の麻雀の１局を抽象化した１人麻雀は以下のルールを持つものとする。はじめにプレイヤに１３枚の手牌q∈Qが与えられる。プレイヤは定められた打牌回数tmaxの中で、ツモかフーロを行いながらアガリやテンパイを目指す。ゲームの進行を以下の７つのフェーズに分ける。
【００３１】
start：プレイヤに１３枚の手牌q∈Qが与えられ、chanceFへ移行する。
chanceF：プレイヤの打牌回数がｔmax未満の場合、他家が牌を牌山から１枚場に出しplayerFへ移行する。打牌回数がｔmaxの場合、手牌に応じた利得が与えられてゲームが終了する。
playerF：プレイヤは手牌と他家の捨て牌に応じてフーロやロンが可能で、ロンした場合agariRへ移行する。大明カンした場合はchanceFへ移行し、打牌回数が１増えたものとして扱う（嶺上牌のツモは行わない）。大明カン以外のフーロをした場合playerDへ移行し、フーロしない場合chanceTへ移行する。
chanceT：プレイヤは牌山から牌を１枚ツモりplayerDへ移行する。
playerD：プレイヤは可能なアガリまたは打牌の一つを選択し、アガリを宣言した場合にはagariTへ移行し、アガリをしない場合プレイヤは牌を１枚捨ててchanceFに戻る。暗カン、加カンした場合も打牌回数が１増えたものとしてchanceFに戻る。
agariT、agariR：ルールに基づいた利得が与えられてゲームが終了する。
【００３２】
これらのゲームの進行は図１のようにまとめられる。このゲームの部分木はＤＡＧとして簡略化することができて、利得の期待値は、手牌q、ツモ、フーロ可能牌種h、フェーズa、打牌回数t、根節点n0の関数として近似的に表される。アガリをした場合、すなわちa∈{agariT,agariR}ならば、（１）式となる。ここで、Uagari(q,h,a,n0)は現在の点数状況、アガリを行う直前の手牌q、アガリ牌h、アガリがツモかロンかを表すフェーズaなどに依存する利得である。
【数１】
2019083997.tif 000003
【００３３】
ツモまたはフーロの後のプレイヤ節点、すなわちa＝playerDが成り立つとき、利得の期待値は、（２）式となる。ここで、iはこの節点の直前のツモまたはフーロを表す牌種である。また、C(q,i,playerD)は、手牌qにおいてツモまたはフーロiを行った後に行うことができる打牌またはアガリ宣言を行った後の全ての手牌qc、ツモまたはフーロic、フェーズacの組からなる集合である。
【数２】
2019083997.tif 000004
【００３４】
フーロ、ロンの選択を行う節点、すなわちa＝playerFであるとき、利得の期待値は、（３）式となる。ここで、C(q,h,playerF)は、手牌qにおいて他家が牌種hを打牌した後に行うことができるフーロ、ロンを行った後、またはフーロもロンも行わなかった全ての場合における手牌qc、フーロhc、フェーズacの組からなる集合である。
【数３】
2019083997.tif 000005
【００３５】
また偶然節点については、ツモ前の節点と他家打牌前の節点が存在し、それぞれ、（４）式のように書ける。ここで、pT(q,h,t,n0)とpF(q,h,t,n0)はそれぞれ、牌種hをツモする確率と他家が捨ててフーロできる確率である。
【数４】
2019083997.tif 000006
【００３６】
＜１人麻雀のデータ構造と探索アルゴリズム＞
ＤＡＧを用いて近似的に表現した１人麻雀のデータ構造と探索アルゴリズムを以下の通り説明する。
【００３７】
＜＜手牌集合の表現＞＞
１局は、牌のツモ及びフーロと打牌の繰り返しで、手牌が合計１３枚の牌からなる節点と、１４枚の牌からなる節点が存在する。合計１３枚の牌からなる手牌全ての集合をQ、合計１４枚の牌からなる手牌全ての集合をQ′とする。ここでの合計枚数は、フーロによって場に晒された牌も含めるものとする。例外的にカンツは４枚の牌から構成されるが、便宜的にこれを３枚と数えて手牌集合をQおよびQ′に分割する。はじめに手牌q∈Qとq′∈Q′が持つ情報を述べる。手牌は以下の要素で構成される。
【００３８】
・非公開牌種：その手牌を持つプレイヤのみに見える場に晒していない情報であり、３４種の牌をそれぞれ何枚持っているかを表す整数の組。各要素は０から４までの整数値をとり、要素の総和はフーロの回数をmfとして13−3mfまたは14−3mfである。
・フーロ：明順２１種、明刻３４種、暗槓３４種、明槓３４種が存在し、それぞれの個数を表す整数の組。明順に関する２１次元の要素は０から４までの整数を取り、それ以外の要素は０または１の整数により表される。
・リーチ：リーチを表すフラグ。
・赤ドラ：赤ドラは３枚のみであり、それぞれについて、持っていない場合、持っていて場に晒していない場合、持っていて場に晒している場合の３通りの状態を持つ。
【００３９】
手牌に関する上記に含まれない情報については省略され、それらが異なる手牌は同一のものとして扱う。具体的には、フーロを行った順番と入手元他家の情報や、チーにおいてフーロした牌種の情報、大明カンと加カンの違い、赤ドラを含むフーロの種類の情報が省略されている。
【００４０】
実装においては上に挙げた情報はいくつかの３２ビット整数型により表される。具体的には、非公開牌種は、（５）式を用いて表現する。
【数５】
2019083997.tif 000007
【００４１】
各牌種は４枚までしか持てないため、１つの牌の枚数は３ビットで表現できる。従って、一つの色（萬子、索子、筒子）の各牌の枚数は２７ビットのデータ構造で、字牌については２１ビットのデータ構造で表現可能である。このように定義すると、ある手牌からの牌種の増減を整数の足し算と引き算で表現することが可能である。実際には、合計枚数に制約があるため、より少ないビット数で非公開牌種を表現可能だが、簡単のためこのようにした。以下では、この３２ビット整数型４つをまとめてHai_Num_Bitと呼ぶ。
【００４２】
後に探索の対象とする手牌を列挙する段階において、同じ手牌を複数回探索しないためにHai_Num_Bitに対してハッシュ値を定義すると便利である。本発明ではXORと定数シフトのみの演算からなるAlgorithm1を用いた（図２参照）。記号<<は、ビット列の左シフトを表している。多くの場合麻雀の手牌は１種類の牌を０または１枚持つことが多いため、色に合わせて左シフトの数を変更することで、ハッシュが衝突する確率を減らすことが可能になる。
【００４３】
フーロ、リーチ、赤ドラの情報もいくつかの３２ビット整数を用いて表現することができる。実際にこれらは、（６）式に示すように、整数８つで表現可能である。明順については、一つの整数が一つの色に対応していて、一つの色に７種類のチーが存在して、同種のものは４つまで存在し得るため、7x3＝２１ビットで表すことができる。明刻、明槓、暗槓については、同じ牌のものは１つまでしか存在し得ず、各色に明刻、明槓、暗槓合わせて２７種存在するため、２７ビットで表すことができる。字牌については合計２１種存在するため、２１ビットで表現できる。最後にリーチと赤ドラについては、リーチは１ビットで表し、各色の赤が晒されているかどうかを１ビット（合計３ビット）で表し、手牌の中に持っているかどうかも１ビットで表した。これらについてもハッシュ値を定義すると都合がよく、本研究では８つの整数のXOR積をハッシュ値とした。今後、これら８つの３２ビット整数型をまとめて、Tehai_State_Bitと呼ぶ。
【数６】
2019083997.tif 000008
【００４４】
＜＜牌交換の表現＞＞
続いて、ある手牌から任意の回数だけ牌をツモり、打牌を行う操作について述べる。本明細書ではこの動作を牌交換と呼び、牌交換全てからなる集合をCにより表す。牌交換は、手牌の各牌種の増減数を要素とする３４個の整数によって表すことができて、各要素は−４から４までの整数値をとる。Cにはルール上許されないような交換（例えば全要素−４により表現される交換）も属す。
【００４５】
牌交換c∈Cに対して、牌種h∈Hの増減をchで表す。また、手牌に増えた牌の数をn、減った牌の数をmとして（７）式とする。プレイヤが打牌選択を行う際、手牌は合計１４枚であり、そこから１３枚と１４枚の手牌を繰り返し、アガリ形となる１４枚の手牌を目指すため、打牌選択において重要な集合はC(n,n)とC(n,n+1)である。以下では手牌qにおいて、牌交換cを行うことで実現する手牌をq+cと書く。
【数７】
2019083997.tif 000009
【００４６】
＜＜ＤＡＧの節点の列挙＞＞
ある打牌選択を行う節点をＤＡＧの根節点として、探索対象となる手牌の集合を定義する。このＤＡＧの各節点は、手牌q、牌種h、フェーズa、打牌回数tにより特定される。これらの内、手牌q以外の値は列挙することが容易である。従って、ここでは手牌の列挙についてのみ述べる。後述の「１．探索手牌（ツモのみ）の列挙」では、ツモと打牌のみを行なった場合での探索手牌集合QS0を導入する。続いて、「２．探索手牌（フーロ等も考慮）の列挙」では、ツモに加えてフーロにより牌を入手したり、リーチやカンを行ったりもする場合での探索手牌集合QSを導入する。
【００４７】
１．探索手牌（ツモのみ）の列挙
１人麻雀のＤＡＧの探索は、想定されるテンパイ形を列挙することからはじまる。この打牌選択を行う節点での手牌をq′0とし、手牌をアガリ形に変える牌交換からなる集合CAと、n枚以下でアガリ形に変える牌交換からなる集合CA(n)を、（８）式で定義する。CA(n)に属する要素の列挙は、シャンテン数を数えるバックトラック法を利用して、シャンテン数がn−1以下になる面子切り分け方法を列挙することによりなされる。
【数８】
2019083997.tif 000010
【００４８】
次に、探索を行う手牌を列挙するためCの要素に対して部分交換を定義する。牌交換c′がcの部分交換であるとは以下の条件を満たすものをいう。
・0≦chなるh∈Hに対して0≦c′h≦chが成り立つ。
・0≧chなるh∈Hに対して0≧c′h≧chが成り立つ。
ここで、c自身もcの部分交換であり、cの部分交換全てからなる集合をCP(c)と定義する。アガリを目指す際に探索すべき手牌を生成する牌交換の集合CS(n)は、（９）式のように定義される。
【数９】
2019083997.tif 000011
【００４９】
また、打牌選択を行う節点での全合法打牌の集合をCLとする。これはC(0,1)の部分集合であり、要素数は１４以下である。これにより、探索の対象となる手牌全てからなる集合QS0(n)を（１０）式と定義する。
【数１０】
2019083997.tif 000012
【００５０】
交換枚数nはq′0のシャンテン数以上の値を取る必要があり、nとシャンテン数の差を大きくとるほど探索の精度は向上する。以下ではnは定数を想定するため、CS(n),QS0(n)はCS,QS0と略記する。
【００５１】
CSの要素の中には複数のCP(c)の要素となっているものが数多く存在する。実装において重複無くQS0の列挙を行うにあたり、QS0の要素に対するHai_Num_Bitのハッシュ値を用いると効率が良い。
【００５２】
２．探索手牌（フーロ等も考慮）の列挙
今まで、牌の交換などは非公開牌種の枚数の増減のみを考えてきた。そのため、ここまでで想定できる手牌は現在の手牌q′0からツモによる打牌交換を行った手牌だけであり、フーロにより実現する手牌はQS0に属さない。そこで、フーロを含めて牌の増減がcで表される手牌について述べる。
【００５３】
牌交換cは、手牌に増える牌と減る牌の双方を３４個の整数組で表現できる。これらを、それぞれ、xin(c),xout(c)と書く。これらの各要素は０から４の整数である。そこでポンとチーも３４個の整数組で表すことを考慮する。ポンとチーにより牌を得る場合、チーは同じ牌種のフーロでも順子の数の小さい側に入れるか、中間に入れるか、大きい側に入れるかによって異なる手牌になるため、ポンとチーによる牌の増加を４つの３４個の整数組x1,x2,x3,x4により表す。ここで、x2,x3,x4はチーする牌種を表していて、字牌の部分は常に０であるが、ポンと合わせるため３４個の整数組とする。結果として、x1の要素の総和は根節点からポンした回数、x2+x3+x4の要素の総和はチーした回数に対応する。このとき、フーロを含めて牌の増減がcで表される交換の集合D(c)を（１１）式により定義する。さらに、D(c)の部分集合でフーロの合計回数がmf-max以下からなるフーロも考慮した交換からなる集合をD(c,mf-max)と書く。
【数１１】
2019083997.tif 000013
【００５４】
手牌q′0からD(c,mf-max)の交換を行った手牌からなるQの部分集合をQD(q,mf-max)とする。すなわち、q＝q′0＋c ∈QS0に対して、（１２）式である。ここでq′0＋dとは、手牌q′0からフーロも考慮した交換dを行って実現される手牌である。
【数１２】
2019083997.tif 000014
【００５５】
ツモの場合と異なり、フーロの場合入手できる牌には麻雀のルールに基づいた制限があり、QD(q,mf-max)から実現不可能なものをある程度除外する。制限とは例えば、「ポンする際には同じ牌が手牌に２枚必要」などである。本明細書では、q′0とx0から判定可能なルール上の制約を説明する。この条件は一般に以下のようにまとめられる。フーロxi,i = {1,2,3,4}を行うために必要な牌種と枚数を表す整数の組をyiとする。例えばx1が牌種hのポン１つからなる場合y1h =２で他は０である。QDから除外される手牌は、ある牌種h対して（１３）式が成り立つことである。ここでq′0hは手牌q′0の非公開牌種に含まれる牌種hの枚数である。
【数１３】
2019083997.tif 000015
【００５６】
さらに、探索する手牌に、リーチをした手牌や、カンを含む手牌を加えることを考慮する。そのため、集合QD(q,mf-max)に含まれる各手牌に対して以下の手牌も考慮する。
【００５７】
・フーロ回数がmf-maxを超えない範囲で、手牌に含まれる暗刻を暗槓または明槓に置き換えたり、明刻を明槓に置き換えたりした手牌（フーロ回数は場に晒した面子の数であり、加カンはフーロ回数を増やさないものとする）。
・QD(q,mf-max)の要素と上で挙げたメンゼンテンパイ手牌においてリーチをした手牌。
【００５８】
これらの手牌をQD(q,mf-max) に加えた集合をQ′D(q,mf-max)とする。
QS0の全ての要素に対するQ′D(q,mf-max)の和集合が探索する手牌の全体であり、QSと書く。すなわち（１４）式である。以降では、Q′D(q,mf-max)をQ′D(q)と略記し、その要素をqの派生手牌と呼ぶ。
【数１４】
2019083997.tif 000016
【００５９】
実装においては、上述した手牌の交換を再帰的に行い、今までに無い手牌が現れたらそれを集合に追加する。これらはqi ≠ qjなるqi,qj∈QS0に対して、Q′D(qi) ∩ Q′D(qj) = φが成り立つため、各QS0の要素間で並列に実行可能である。また、Q′D(q)の各要素はTehai_State_Bitにより識別可能であるから、このハッシュ値を利用することで重複のないQ′D(q)の要素列挙が効率的に行われる。
【００６０】
＜＜枝の列挙＞＞
上述したように、q′0からアガリに向かう際に、牌交換回数とフーロ回数を閾値として探索空間に制限を課し、手牌の列挙を行った。実際にＤＡＧの探索を行う際には、枝の情報も必要である。はじめに、フーロを行わない各手牌に対して、牌交換を行った手牌がQS0の要素であるような一枚牌交換C(1,1)の部分集合を定義する。すなわち、q∈QS0に対してe(q)を（１５）式と定義する。
【数１５】
2019083997.tif 000017
【００６１】
C(1,1)に属する要素の数は３４x３３通りであり、e(q)の列挙の実装は、qに対しC(1,1)の全ての要素に対しq+cを計算し、それがQS0に含まれるかを判定する。これもHai_Num_Bitのハッシュを利用すると、ハッシュ表が大きい理想的な状況では計算量をO(1)に抑えることが可能である。また、この計算は各q∈QS0に対して独立に実行可能であるため並列化が容易である。
【００６２】
前節でフーロ等を含めて手牌を列挙したが、これに合わせて１枚の牌交換に関しても、フーロを含めて拡張する必要がある。牌hinを１枚増やし、牌hout（≠hin）を１枚減らす交換c∈C(1,1)に対して、以下の交換からなる集合を派生交換集合A1(c)とする。
【００６３】
・ツモ：hinをツモり、houtを打牌する。リーチしない場合とする場合の２通りが存在する。
・チー：hinをチーし、houtを打牌する。順子のどの部分をチーするかによって３通り想定される。
・ポン：hinをポンし、houtを打牌する。
・加カン、暗カン：hinをツモり、houtを加カンまたは暗カンする。
【００６４】
手牌q∈QSに対して、交換d∈A1(c)を行うことで実現する手牌をq+dとする。ＤＡＧの探索を行う際、各q∈QSに対して、q+d∈QSが成り立つようなd∈A1(c)全てを予め列挙すると効率が良い
【００６５】
ここでqi∈QS0、c∈e(qi)、qj∈Q′D(qi)、d∈A1(c)であるとき、（１６）式という性質が成り立つ。したがって、qj+dのTehai_State_Bitのハッシュ値を利用することで効率的にＤＡＧの探索に必要な派生交換を列挙することが可能である。
【数１６】
2019083997.tif 000018
【００６６】
続いて牌hの自己交換A0(h)を以下で定義する。
・加カン、暗カン：牌hをツモり、牌hを加カンまたは暗カンする。
・大明カン：牌hを大明カンする。
これらは集合Q′D(q)の中で閉じた交換である。すなわち、qj∈Q′D(qi)、d∈A0(h)であるとき、（１７）式が成り立つ。ツモ切りリーチは集合QD(q)の中で閉じた交換であるから、この中に含まれ得るものであるが、フーロやリーチを行う他家がいない状況で、リーチを数巡待つことが有利になることは想定しづらいことから本明細書では考えないものとする。
【数１７】
2019083997.tif 000019
【００６７】
手牌qに対して列挙した交換の集合をA(q)とする。すなわち、（１８）式である。
【数１８】
2019083997.tif 000020
【００６８】
これらの列挙のアルゴリズムはAlgorithm2にまとめられる（図３参照）。１行目のQS0に関するループは、そのサイズが数万程度であり他のループに比べて一桁以上大きいため並列化して行う。２行目のQ′D(qS0)に関するループのサイズは、探索を始めるときの手牌のシャンテン数や、フーロ回数に依存するが、およそ１０以下である。３行目のe(qS0)のループのサイズは|C(1,1)|より小さく、実際は数百程度である。４行目のA1(c)については、入手する牌がチーできる牌かどうかなどによってサイズが異なるが、１０以下であり、１１行目のA0(h)のサイズは３である。５行目と１２行目で、手牌qから変換dを行った手牌q + dがQSに属するか判定を行う。この際、QSはサイズが１０万程度の集合であるが、(１６)、（１７）式の関係を用いると、判定はおよそ１０以下の集合から行えばよいことがわかる。
【００６９】
＜＜終端節点の利得＞＞
手牌の形によっては、あと１枚の牌でアガリ宣言を行うことができる。アガリ宣言を行った場合、プレイヤにはアガリ形に応じた利得が与えられゲームは終了する。手牌q∈QSにおいてアガリに必要な牌と利得(h,u)∈H×Rからなる集合を、ツモアガリとロンアガリのそれぞれで、Btsumo(q)、Bron(q)とする。また、探索を行う上での最大想定打牌回数tmaxの打牌を行ったときに手牌がqであった場合の利得をUryukyoku(q)とする。
【００７０】
＜＜偶然節点における行動の確率＞＞
ＤＡＧの探索を実際に行うためには、偶然節点における行動の確率を定める必要がある。これは、ある牌hをツモする確率および副露できる確率であり、以下にまとめることができる。
【００７１】
・ツモ確率：牌山から牌hをツモする確率であり、打牌回数tとその時の手牌qに依存するとしてpT(q,h,t)と表す。
・チー確率：上家が牌hを打牌する確率であり、打牌回数tとその時の手牌qに依存するとしてpF(q,h,t)と表す。
・ポン、ロン確率：他家が牌hを打牌する確率であり、チー確率の３倍と考えて3pF(q,h,t)とする。
【００７２】
＜＜期待値の計算＞＞
上述したように、QSの各要素に対して、どの行動を行った後にどの手牌に遷移するかを列挙した。ここでは、その結果を用いて１人麻雀の期待値の計算アルゴリズムを説明する。そのため、A(q)をツモにより行うことができる行動の集合Atsumo(q)、チーの集合Achi(q)、ポンと大明カンの集合Apon(q)とに分割する。また、E(q,null,chanceF,t,n0)、E(q,null,chanceT,t,n0)はそれぞれE(q,F,t)、E(q,T,t)と略記する。具体的な計算はAlgorithm3に従う（図４参照）。E(q,F,t)の計算に用いるflag(h)は、その牌を他家から手に入れる最適な行動がポンかロンである場合に１となり、フーロの確率の係数を３に変える効果がある。
【００７３】
探索の具体的な順序は以下のようである。はじめに打牌回数がtmaxとなった終端節点の利得とアガリ確率を設定する。この節点では、１人麻雀のルールによりツモもフーロもできないことから、アガリ確率は０であり、手牌に応じた利得Ur(q)が設定される。
【００７４】
次に、終端節点(t=tmax)から現在の節点で打牌を行った節点(t=1)まで期待値とアガリ確率を更新するループ処理を行う。期待値とアガリ確率は終端節点に近いほうから確定していくため、tが同じ節点ではフェーズがツモの節点が先に決まり、フェーズがフーロの節点が後に続く。これは１人麻雀のルールで、打牌を行った後にフーロのフェーズが先にあり、次にツモのフェーズが続くためである。具体的な更新は以下のように行う。牌種hをツモした際に最も期待利得の高い選択を行った場合の期待利得とアガリ確率をEtmp(h)、ptmp(h)に入力する。これは、はじめにツモ切りを行った場合の期待利得とアガリ確率E(q,F,t+1)、p(q,F,t+1)を初期値として、手牌qから行うことができるツモアガリの集合Bt(q)および、ツモによる牌交換の集合Atsumo(q)から期待利得最大の選択を検索することで行う。その後、求めたEtmp(h)、ptmp(h)に対して、ツモ確率pT(q,h,t)との積を足し合わせてツモフェーズの期待利得およびアガリ確率の更新処理が完了する。フーロフェーズの更新では、初期値をフーロを行わなかった場合の期待利得とアガリ確率E(q,T,t)、p(q,T,t)に設定する。続いて、ツモフェーズの更新と同様に、各牌種が打牌された際に最も期待利得の高い選択を行った場合の期待利得とアガリ確率をEtmp(h)、ptmp(h)に入力する。これは、手牌qから行うことができる行動の集合Achi(q)、Bron(q)、Apon(q)から検索する。この時、抽象化した１人麻雀では他家３人の打牌が１つにまとめられるが、元のルールではチーは上家からしかできないものの、ポンとロンは３人の捨て牌から行うことであることを反映するため、ポンまたはロンが最適な行動である場合はそのことも記録する。更新は、各牌種hに対して初期値にEtmp(h)−E(q,T,t)および、ptmp(h)−p(q,T,t)とフーロ、ロンができる確率の積を足していくことで行う。その確率は、最適な行動がチーである場合はpF(q,h,t)であり、ポン、大明カン、ロンである場合は3pF(q,h,t)である。
【００７５】
＜＜評価実験＞＞
ここでは、上述した手法を用いてＤＡＧを構成した場合にＤＡＧの大きさがどの程度になるか、実験によって明らかにする。ＤＡＧの大きさは、探索を行う節点での手牌のシャンテン数、（１０）式の交換枚数n、そして（１２）式のフーロ回数mf-maxに大きく依存する。これらの条件で分類を行った場合の、|QS|の平均的な値を表１に示す。手牌は天鳳の鳳凰卓においてあるプレイヤが４回目の打牌を行う際の手牌をランダムに選択した。シャンテン数、交換枚数、フーロ回数が大きくなるほど|QS|の値が大きくなるが、３シャンテン、４シャンテンの場合でも交換枚数が４までであればおよそ１０万程度に収まる結果を得た。この程度のサイズのＤＡＧであれば、物理コア数４、論理コア数８のIntel Core i7（登録商標）、メモリ８ＧＢの計算機を用いておよそ５秒以下で結果を出すことが可能である。すなわち、一般的な対戦条件（例えば数秒程度の思考時間）のもとで局をプレイ可能な麻雀ＡＩに組み込むことができる。３シャンテンまでであれば、交換枚数がシャンテン数より大きくても探索が可能であり、状況に応じてシャンテン数を落とす選択が可能である。１シャンテンの場合３枚変えも探索可能であり、ターツを落として高い手を狙う選択もあり得る。
【表１】
2019083997.tif 000021
【００７６】
＜麻雀１局の目的に応じた抽象化と価値推定からなるプレイヤ＞
上述したようなＤＡＧで表現された１人麻雀の探索アルゴリズムに加え、以降では、麻雀１局の目的に応じてゲーム木を複数に抽象化し、その探索結果を用いて局面や選択の価値を推定する手法について説明する。
【００７７】
全ての抽象化において、他家の手番は全て偶然プレイヤの手番として置き換えられ、プレイヤが偶然プレイヤと自分（意思決定を行うプレイヤ）のみとなるため、これらを１人麻雀と呼んでいる。自分の手牌や他家の状態で大まかに場合分けを行い、１人麻雀の結果を用いる（図５参照）。自分の手牌のシャンテン数が大きく、他家のテンパイ確率も高くない状況では、ルールベースの打牌を行い、フーロは行わない。このルールベースの打牌とは、孤立字牌を対子になりにくく（既に場に見えている）、なっても価値が低いもの（刻子になっても役にならないオタ風牌）を優先的に捨てるといったものである。自分の手牌のシャンテン数が大きく、他家がリーチまたは２回以上のフーロを行っている場合、降りを行う。これは降り方策１人麻雀の結果を用いるが、その詳細は後述する＜降り方策１人麻雀＞で説明する。自分の手牌が１シャンテン以下の場合は、包括方策１人麻雀の結果を用いる。これは、アガリ、形式テンパイ、降りなどの要素を取り入れた１人麻雀であり、この詳細は後述する＜包括方策１人麻雀＞で説明する。これらの条件以外の手牌では、上述した、リーチやフーロした他家がいない場合放銃を考慮せずアガリを目指すアガリ方策１人麻雀の結果を用いる。リーチやフーロをした他家がいる場合は、各種の１人麻雀の結果を特徴量とする価値推定を機械学習によって行い、利得期待値を最大化する選択を行う。
【００７８】
ここで以下で用いる４つの１人麻雀について概説する。これらは麻雀１局においてプレイヤが取り得る各々の目的に応じたものであり、ゲーム木の構造などは異なるが、終端節点での利得の設定などで共通する部分もある。
【００７９】
アガリ方策１人麻雀：
プレイヤは定められた打牌回数の範囲でツモとフーロを行い、アガリを目指す。プレイヤ手番の節点はツモ節点とフーロ節点が存在する。ツモ節点では、牌をツモした状態で何を打牌するか、またはアガリ宣言を行うかの選択を行い、フーロ節点では捨てられた牌をフーロするかの選択を行う。各順目においてプレイヤがツモする牌種や、フーロの対象となる捨て牌の牌種は偶然プレイヤに決定される。アガリを行った終端節点の利得は、アガリの種類（ツモアガリ、ロンアガリ）、翻、符、局などにより定まるが、麻雀のルールに基づく点数そのものではなく、局終了時の順位点推定値を用いる。アガリをしない状態で定められた打牌回数に達した終端節点での利得は手牌によらないものとする。放銃や他家のアガリは考えない。
【００８０】
形式テンパイ方策１人麻雀：
プレイヤは、定められた打牌回数の範囲でツモとフーロを行い、形式テンパイを目指す。アガリ方策１人麻雀との違いは、プレイヤはアガリ宣言を行うことができないことと、定められた打牌回数に達した終端節点での利得が手牌に依存することである。プレイヤの目的は形式テンパイを狙うことのみであるため、終端節点で手牌が形式テンパイの場合の利得は１で、そうでない場合の利得は０とする。
【００８１】
降り方策１人麻雀：
プレイヤは定められた打牌回数に達するまで打牌を行うが、ツモやフーロは行わない。したがって、打牌回数は手牌枚数より小さい値である。プレイヤの打牌した牌種が放銃になるかどうかは偶然プレイヤに決定される。この時の放銃確率は打牌回数に依存しないが、一度放銃とならなかった牌の放銃確率は０とする。また、プレイヤが１回打牌し放銃しない場合、偶然プレイヤにより一定の確率でゲームが終了する。これは他家のツモアガリ、もしくは他家から他家のロンアガリに対応している。終端節点の利得は、放銃した節点における牌種ごとに異なる利得、偶然プレイヤによりゲームが終了する節点の利得、定められた打牌回数に達した場合の利得が存在する。
【００８２】
包括方策１人麻雀：
プレイヤは定められた打牌回数の範囲でツモとフーロを行い、放銃を避けながらアガリまたは形式テンパイを目指す。アガリを行った終端節点の利得はアガリ方策１人麻雀と同じである。また、定められた打牌回数に達した終端節点の利得は手牌に依存する。この利得は、形式テンパイで流局した場合とそうでない場合それぞれでの順位点推定値を用いる。プレイヤが打牌した後には偶然プレイヤによってそれが放銃となるか判定される。この確率は牌種と巡目に依存し、放銃した節点の利得は牌種に依存する。放銃とならない場合は、次にフーロの選択を行うまでの進行は以下のようである。はじめに、プレイヤが降り方策を選択するか決定する。降り方策を選択した節点は終端節点として表され、その利得は降り方策１人麻雀の結果をもとに算出する。降り方策を選択しない場合、偶然プレイヤによって他家のアガリに対応する終局をするかの選択が行われる。終局とならない場合、偶然プレイヤがフーロの対象となる牌を選択する。
【００８３】
これらの１人麻雀において、考慮されている要素とされていない要素を表２にまとめた。４つの１人麻雀のうち、アガリ方策１人麻雀と形式テンパイ方策１人麻雀は、非特許文献１で述べられた１人麻雀のモデルの終端節点の利得を変更し部分的に簡略化したものと考えることができる。降り方策１人麻雀は、ツモやフーロを行わないため、他の１人麻雀と比べてゲーム木のサイズが小さく扱いが容易である。包括方策１人麻雀は、麻雀の多くの要素を取り込んでいるため、このゲーム木における期待値最大化方策に従った選択が妥当なものになる場合が多い。一方で、例えば放銃をほとんど気にする必要が無い１局の序盤などは単純にアガリ方策１人麻雀の選択をした方が良い場合もある。実際にどのような状況でどの１人麻雀を利用するかを決めるフローは発明者の経験則に基づいて行われている。
【表２】
2019083997.tif 000022
【００８４】
＜各種１人麻雀について＞
以下では、上で概説した１人麻雀の詳細について説明する。はじめに１人麻雀の終端節点の利得を定めるために、局の終わりの価値（１人麻雀プレイヤの期待順位点の何らかの推定値）について、その計算方法を説明する。次に、降り方策１人麻雀と包括方策１人麻雀について、定式化と利得を最大化する方策を説明する。
【００８５】
＜＜１人麻雀の終端節点の利得＞＞
ここでは、後述する抽象化した１人麻雀で利用する価値について定義と計算方法を説明する。はじめに、麻雀の１局が終わり方が確定した場合の価値を定める。麻雀の１局の終わり方は、アガリと流局の２種類に分類でき、その際の各プレイヤの点数の収支はルールにより定められている。１局の終わり方がアガリである場合、プレイヤiがプレイヤjから翻xhan、符xfuの手でアガリをした場合の価値をRijagari(xhan,xfu)とする。ここで、ツモアガリはi=jであり、ロンアガリはi≠jである。また、１局の終わり方が流局である場合、価値は各プレイヤの聴牌フラグを用いて表すことが可能で、これをRryuukyoku(l1,l2,l3,l4)と書く。ここでliはプレイヤiがテンパイしている場合に１で、そうでない場合は０である。また、自分のプレイヤ番号はi=１とする。これらの価値は多クラスロジスティック回帰による順位確率の推定から求まる（非特許文献１）。
【００８６】
続いて、１局の終わり方に関する確率をいくつか定義し、その推定法を説明する。自分がアガリをできない場合に流局する確率をpryuukyokuとする。推定は、自分の打牌回数に関して場合分けを行い、以下の特徴量ベクトルを用いたロジスティック回帰により行う。
【数１９】
2019083997.tif 000023
【００８７】
ここで、pitenpaiはプレイヤiのテンパイ確率であり、発明者の先行研究の手法で推定する（栗田萌、保木邦仁  「麻雀における他家の手牌と待ちの予測に基づく放銃確率推定」  情報処理学会研究報告  ＧＩ、Ｖｏｌ．２０１７−ＧＩ−３８、  Ｎｏ．５、  ｐｐ．１−８、２０１７）。また、４行目のテンパイ確率に関する積は、リーチしていない他家についてのみ行う。また、自分がアガリをせずさらに流局しない場合、他のプレイヤがアガリをすることになるが、その確率をpiagari-otherとする。他のプレイヤiは下家、対面、上家のいずれかであり、この確率の推定は３クラスのロジスティック回帰により行う。特徴量のベクトルは１、他家３人のリーチフラグ、他家３人のテンパイ確率の７次元である。さらに、他家iがアガリをし、さらにそれが自分の放銃でない場合に、それが他家jからのアガリである確率をpijagari-fromとする。この値は、経験則に基づいて、（２０）式とする。流局した場合に他家iが聴牌している確率をpiryuukyoku-tenpaiとする。他家iがリーチしていない場合、この推定はロジスティック回帰に基づいて行い、特徴量のベクトルは、Φryuukyoku-tenpai=(1,pitenpai)とする。
【数２０】
2019083997.tif 000024
【００８８】
最後に、後の１人麻雀で用いるためのいくつかの価値を定義する。他家のアガリ点に対する価値Rijagari(xhan,xfu)と、そのアガリの確率から他家のアガリに関する終端節点の利得が得られる。発明者らの先行研究の手法を用いると、牌hを打牌する際のプレイヤiに対する放銃確率pihoujuu(h,xhan,xfu)を推定ことができる（栗田萌、保木邦仁  「麻雀における他家の手牌と待ちの予測に基づく放銃確率推定」  情報処理学会研究報告  ＧＩ、Ｖｏｌ．２０１７−ＧＩ−３８、  Ｎｏ．５、  ｐｐ．１−８、２０１７）。また、同じ手法を用いることで、プレイヤiが牌hをツモした際にアガリをする確率pitsumo-agari(h,xhan,xfu)を推定することができる。これらを用いると、他家iがプレイヤjからアガリをする際の価値Rijagariはi≠jのとき（２１）式となる。
【数２１】
2019083997.tif 000025
【００８９】
ここでn(h)は牌種hのプレイヤから見えていない牌の枚数である。i=jの時は、pihoujuu(h,xhan,xfu)をpitsumo-agari(h,xhan,xfu)で置き換える。他家がアガリをし、自分が放銃しない終端接点の利得Uagari-no-relationは今までの結果から（２２）式と算出することができる。
【数２２】
2019083997.tif 000026
【００９０】
流局時に自分が聴牌していない終端接点の利得をUryuukyoku-noten、聴牌している終端接点の利得をUryuukyoku-tenpaiとすると、（２３）式で表される。
【数２３】
2019083997.tif 000027
【００９１】
ここで、pirt(1)= piryuukyoku-tenpaiであり、pirt(0)=1−pirt(1)である。自分がアガリをしたり、流局時に聴牌を取ることを放棄し、放銃しないように打牌する戦略を「降り」と呼ぶ。本研究ではこの戦略を取った場合に放銃にならずに局が終わる場合、降りに成功したとする。その終端接点の利得を（２４）式とする。
【数２４】
2019083997.tif 000028
【００９２】
＜＜降り方策１人麻雀＞＞
麻雀では降りの技術は非常に重要な戦略である。放銃率を下げるため、基本的に安全度の高い牌から捨て、安全度の差が大きくない場合は持っている枚数が多い牌や、放銃しても安い牌から捨てていく戦略が良いとされる。ここでは、降り方策１人麻雀という降りを簡略化したゲームを定義し、その中で最適な戦略を求めることで実際の多人数で行う麻雀における降りの戦略を立てる手法を説明する。手組について１人麻雀を考えるのと同様に、降りについても問題の簡略化を行い、降り方策１人麻雀を以下で定義する。
【００９３】
・自分の手牌には牌種hがnh枚あり、各牌種h∈Hごとに、放銃確率phoujuu(h)と放銃時の利得Uhoujuu(h)が設定されている。
・プレイヤは自分の手番で牌を捨てる。この時、一度放銃にならなかった牌種は次も放銃にならないものとする。放銃にならない場合、一定の確率αでゲームが終了して利得Uagari-no-relationを得る。終了しなかった場合、ツモは行わずプレイヤの手番に戻る。
・自分の手牌が無くなった場合、利得Uori-succeedを得てゲームが終了する。
【００９４】
このゲームにおいて期待利得を最大にするような打牌の順番を説明する。基本的に全てのh∈Hに対して、Uagari-no-relation＞Uhoujuu(h)であることを想定しているため、一度放銃にならなかった牌種が手牌に残っている場合は、その牌を優先的に捨てるべきことは自明であり、最適な打牌の順番は牌種順により表現される。牌種hが放銃にならない場合に、hをnh回連続で打牌する間にゲームが終端しない確率は(1−α)nhである。k番目に捨てる牌種をhk、その期待値は、（２５）式のように級数の形で表すことができる。ここでKは手牌に１枚以上含まれる牌種の数である。また、houjuuはhと略記した。これをE(h1,・・・,hK)と書く。これを最大化する降り順は解析的に求めることができる。
【数２５】
2019083997.tif 000029
【００９５】
この級数は、（２６）式であることの必要十分条件が、（２７）式であるという性質を持つ。
【数２６】
2019083997.tif 000030
【数２７】
2019083997.tif 000031
【００９６】
したがって、f(h)が小さい牌種から捨てることで、降り方策１人麻雀の期待値を最大化できる。f(h)がUori-succeedによらないのは、（２５）式において順序によらない定数項でのみ現れるためである。これは放銃率が低いもの、枚数が多いものを優先すべきという順序になっていて、直感ともあっている。以下では、この順番に並べた際にi番目となる牌種をh*iと書く。この戦略を用いて降りを行った場合の放銃確率は、（２８）式と表すことができる。
【数２８】
2019083997.tif 000032
【００９７】
後の計算で利用するため、放銃時の平均利得Rhoujuu-averageを算出する。その際の期待値は（２５）式より求めることができて、これをEoriと書くと、Rhoujuu-averageは、（２９）式より求めることができる。αの値については、本明細書では暫定的に0.1とする。
【数２９】
2019083997.tif 000033
【００９８】
また、放銃の関する値については、（３０）式のように計算する。
【数３０】
2019083997.tif 000034
【００９９】
＜＜包括方策１人麻雀＞＞
この節では放銃や他家のアガリ、降りを考慮に入れてアガリや形式テンパイを目指す包括方策１人麻雀を説明する。包括方策１人麻雀は、上述した１人麻雀に以下の３つの拡張を行ったものとみなすことができる。
【０１００】
・プレイヤが打牌を行う際、順目とその時のプレイヤの手牌qと牌種に応じた確率phoujuu(q,h,t)で打牌が放銃となり、利得Uhoujuu(q,h,t)が与えられてゲームが終了する。
・偶然プレイヤがプレイヤがフーロ、ロンできる牌を選択する前に、順目とその時のプレイヤの手牌qに応じた確率pkyoku-end(q,t)によりゲームが終了し、利得Uagari-no-relationが与えられる。
・プレイヤは打牌を行い、それが放銃とならなかった場合、降りを選択することができて、順目と手牌に応じた利得Uori(q,t)が与えられてゲームが終了する。
【０１０１】
これにより、節点の期待値は以下のように変更される。打牌を行うフェーズでは、放銃を考慮し、（３１）式となる。
【数３１】
2019083997.tif 000035
【０１０２】
ただし、各値の根節点に対する依存性は表記を省略した。ここでhはhoujuuを意味する。他の１人麻雀の場合と異なり、C′′(q,i,playerD)は、降りの節点(q,null,ori)を含み、（３２）式である。
【数３２】
2019083997.tif 000036
【０１０３】
これにより、将来的な降りの期待値を考慮した打牌が可能となる。また、フーロを待つ偶然節点においては、それ以前に他家がアガリをし得ると考えて、（３３）式とする。ここで、keはkyoku-endを表す。
【数３３】
2019083997.tif 000037
【０１０４】
包括方策１人麻雀で新たに設定された利得や確率の値は以下の手順で求める。定められた回数の打牌を行った終端節点の利得は、（３４）式とする。
【数３４】
2019083997.tif 000038
【０１０５】
次に、t回打牌を行った際に牌種hを打牌した場合に、それが放銃となる確率phoujuu(q,h,t)とその利得Uhoujuu(q,h,t)について説明する。発明者による先行研究において、他家iに対する現在の放銃確率pihoujuu(h,xhan,xfu)は、テンパイ確率pitenpaiとテンパイ時放銃確率pitenpai-houjuu(h,xhan,xfu)の積である（３５）式によって表した（栗田萌、保木邦仁  「麻雀における他家の手牌と待ちの予測に基づく放銃確率推定」  情報処理学会研究報告  ＧＩ、Ｖｏｌ．２０１７−ＧＩ−３８、  Ｎｏ．５、  ｐｐ．１−８、２０１７）。
【数３５】
2019083997.tif 000039
【０１０６】
プレイヤがt回目の打牌を手牌qで行った時の放銃確率については、テンパイ確率のみがq、tに依存すると考えて、（３６）式とする。
【数３６】
2019083997.tif 000040
【０１０７】
ここで、プレイヤがt回打牌を行った際のリーチをしていない他家iのテンパイ確率は、特徴Φitenpai-future = (1,logit(pitenpai))を用いて推定する。確率の推定は、現在の打牌回数とtと手牌qがリーチかどうかについて場合分けをして行う。これらを用いて、（３７）式で計算する。
【数３７】
2019083997.tif 000041
【０１０８】
続いて、プレイヤがt回の打牌を行い放銃にはならなかった場合に、次の打牌をする前に他家の誰かがアガリをして局が終了する確率pkyoku-end(q,t)について説明する。これについても、特徴を（３８）式としてロジスティック回帰を行う。確率の推定は現在の打牌回数とtと手牌qがリーチしているかについて場合分けする。
【数３８】
2019083997.tif 000042
【０１０９】
次に降り戦略を選択した終端節点の利得Uori(q,t)について説明する。これは、特徴である（３９）式を用いて、降り選択を行って放銃する確率pori-node-houjuu(q,t)を推定する。
【数３９】
2019083997.tif 000043
【０１１０】
ここで、pori-houjuu(q,t)は、上述した放銃確率を求める手法で計算するが、放銃確率を計算する級数（２８）式は、捨てた牌の数がNdahai-max−t以上になった段階で打ち切る。また、確率pori-node-houjuu(q,t)の推定はtによって場合分けするほか、学習データは注目したプレイヤがリーチまたは２回以上のフーロを行っていない２シャンテン以上の状態で、他家がリーチを行っている牌譜のみを用いた。これは、この状況であれば上級プレイヤの多くが降りを選択すると予想されるためである。以上より、降りの終端節点の利得を（４０）式とする。
【数４０】
2019083997.tif 000044
【０１１１】
＜１人麻雀の結果を特徴とする価値推定＞
ここでは、今まで説明した１人麻雀の結果を特徴として、麻雀において価値を推定する手法を説明する。Ndahai-maxを、全員がフーロをせず流局する場合のプレイヤの打牌回数と設定した包括方策１人麻雀は、麻雀の多くの要素を取り入れて抽象化したゲームとなっているが、全ての状況でこの手法を用いることが必ずしも最良の選択になるとは限らない。例えば、包括方策１人麻雀では将来的に他家のテンパイ率が高くなることを推定して安全牌を残す選択をするが、初打からこのようなことをするのは有効でない場合が多い。
【０１１２】
この手法は、アガリ方策１人麻雀、形式テンパイ方策１人麻雀、降り方策１人麻雀において算出した結果の全部または一部を特徴量として、機械学習を用いてアガリ確率、形式テンパイ確率、放銃確率を推定して、価値推定を行う手法であり、概念図を図６に示す。
【０１１３】
この手法を用いる場合、１人麻雀の探索を行う段階ではNdahai回の打牌を行ってアガリ出来ない終端接点の利得を、手牌がテンパイ形かどうかによらずUnot-agariに固定する。これは、後に行う期待値計算を容易にするための処理である。
【０１１４】
打牌回数Ndahaiは以下のように決める。はじめに、現在の節点から誰もアガリやフーロを行わない場合に自分が流局までに打牌する回数をNdahai-maxとおく。探索に用いる打牌回数はNdahai-maxより小さい値を用いるのが妥当であると考えられるため、牌譜データを用いてNdahai／Ndahai-maxの推定を行う。すなわち、牌譜の中でその局にアガリをできなかったあるプレイヤのプレイヤ節点に注目し、その節点でのNdahai-maxとそのプレイヤが実際に打牌できた回数の比を教師データに用いる。その際、特徴量をΦdahai-ratio = Φryuukyokuとし、確率の推定は自分の打牌回数で場合分けする。通常のロジスティック回帰分析と異なり、教師信号が０、１の整数ではなく０から１の実数となるが、パラメータの学習は通常のロジスティック回帰分析と同じように行うことが可能である。学習により得られたパラメータをwdahai-ratioと書くと、探索に用いる打牌回数は、（４１）式となる。
【数４１】
2019083997.tif 000045
【０１１５】
利得Unot-agariは以下のように求める。はじめに、１人麻雀の根節点における降り方策１人麻雀での放銃確率をpori-houjuuとする。この時、降り方策１人麻雀における牌種それぞれの放銃確率は全て１人麻雀の根節点において推定される。そして、（４２）式で表される特徴を用いたロジスティック回帰分析によって、現在の局が自分の放銃によって終了する確率を推定し、その値をphoujuu-afterとする。これを用いて、（４３）式のように計算する。ここで、phoujuu-afterをphaと略記した。
【数４２】
2019083997.tif 000046
【数４３】
2019083997.tif 000047
【０１１６】
アガリ方策１人麻雀におけるアガリ出来ない終端節点の利得をUnot-agari、打牌回数をNdahaiとして期待値最大化方策に基づいて探索した際に得られた根節点の行動aのアガリ確率と期待値をそれぞれ、pasearch、Easearchとする。この時、アガリをした場合の平均利得Uaagari-averageは、（４４）式と求めることができる。
【数４４】
2019083997.tif 000048
【０１１７】
ＤＡＧの探索から求めたアガリ確率pasearchを元に、実際のアガリ確率paagariを推定する際にロジスティック回帰を用いる。すなわち、実際のアガリ確率推定に用いる特徴量を、（４５）式とする。テンパイ確率に関する積は、リーチしていない他家に対してのみとるものとし、確率の推定はそのプレイヤの打牌回数に関して場合分けを行う。
【数４５】
2019083997.tif 000049
【０１１８】
流局時のテンパイ確率paryuukyoku-tenpaiも、アガリ確率と同様に推定する。すなわち、Ndahai回の打牌でテンパイ確率最大方策に基づいて探索して得られた行動aのテンパイ確率をpatenpai-searchとし、流局時テンパイ確率paryuukyoku-tenpai推定に用いる特徴量を、（４６）式とする。
【数４６】
2019083997.tif 000050
【０１１９】
同様に、事後放銃確率pahoujuu-afterも推定する。これは、行動aにおける打牌自体は放銃にならない場合に、その後自分の放銃によって局が終了する確率である。用いる特徴量は、（４２）式と同じである。ただし、pori-houjuuは行動aにおける打牌が放銃にならかった手牌からの降り方策１人麻雀での放銃確率paori-houjuuに置き換える。
【０１２０】
最終的に、行動aを行い放銃しなかった場合の期待値は、（４７）式となる。ただし、ag、aav、ry、rt、rn、ha、hav、anrはそれぞれagari、agari-average、ryuukyoku、ryuukyoku-tenpai、ryuukyoku-noten、houjuu-after、houjuu-average、agari-no-relationを表す。
【数４７】
2019083997.tif 000051
【０１２１】
最終的に、行動aの期待利得Eaは、（４８）式となり、この値が最大となる選択を行う。
【数４８】
2019083997.tif 000052
【０１２２】
＜実験結果＞
ここでは、提案した麻雀ＡＩの対局実験結果を説明する。対局では１人麻雀を有向非巡回グラフで表す際の牌の交換枚数は、手牌のシャンテン数に基づいて決定し、０、１、２、３シャンテンのそれぞれで２、３、３、４とした。ただし七対子に関する交換枚数はシャンテン数＋１枚を上限とした。４シャンテン以上で降りを行わない場合は孤立した牌で、最も不要なものを捨てる方策を取った。候補となるのは、手持ち枚数が１枚の字牌、１、２、８、９の数牌である。この中で場に見えている同種の牌が何枚あるか、その牌種がドラであるか、字牌は刻子にした時に役が付くか、数牌は同じ色の４、５、６が手牌に含まれているかの項目から、発明者の経験則に基づいて優先順位を付けた。
【０１２３】
対局のルールは、ｆｌｏｏｄｇａｔｅ  ｆｏｒ  ｍａｈｊｏｎｇと同じものを用いた（水上直紀、亀甲博貴、万代悠作、横山秀  ｆｌｏｏｄｇａｔｅ  ｆｏｒ  ｍａｈｊｏｎｇ(仮)  http://www.logos.t.u-tokyo.ac.jp/mjlog/ ２０１７）。対局相手はｍａｎｕｅという発明者らが知る範囲内ではオープンソース化されている麻雀ＡＩの中で最も強いものを用いた（Ｈｉｒｏｓｈｉ  Ｉｃｈｉｋａｗａ  https://github.com/gimite/mjai-manue）。対局はｍａｎｕｅを３体用意して席順をランダムに決めて行った。対局の結果を表３（本発明による手法とｍａｎｕｅの対局結果）に示す。平均順位については２．１９３±０．０２６となり有意に強い結果が得られた。
【表３】
2019083997.tif 000053
【０１２４】
本発明では、麻雀１局の目的に応じた抽象化と価値推定によって麻雀プレイヤを開発する手法を提案した。目的に応じた抽象化では、本発明で新たに降り方策１人麻雀と包括方策１人麻雀を提案し、期待利得最大化の方策を定式化した。また、価値推定と組み合わせて統合的な麻雀プレイヤを開発し、ｍａｎｕｅとの対局で大幅に勝ち越す結果を得た。本発明で用いた機械学習の手法は、テンパイ推定の手法も含めて全て１０未満の特徴からなる学習の組み合わせであり、麻雀の知識が少ない開発者でも開発が容易である。また、麻雀のローカルルールに関する特徴が少ないことから、国際ルールの麻雀への適用も行いやすいと考えられる。
【０１２５】
＜情報処理システムの例＞
以下では、図７Ａ〜図７Ｄを参照しながら、本発明に係る情報処理システムの例について説明する。図７Ａは、情報処理システム１００のシステム構成の一例を示す図である。情報処理システム１００は、ネットワークＮＷに接続することで相互に通信が可能なサーバ装置ＳＶ、パーソナルコンピュータＰＣ、携帯端末ＭＤと、を含むシステムである。サーバ装置ＳＶは、麻雀ゲームの主要部分を処理し、実行、制御する。パーソナルコンピュータＰＣと携帯端末ＭＤは、現実のプレイヤＲＰＬすなわち人に対して麻雀ゲームに関する情報を表示し、プレイヤＲＰＬの操作を受け付ける。
【０１２６】
ネットワークＮＷは、サーバ装置ＳＶ、パーソナルコンピュータＰＣ、携帯端末ＭＤ間の、情報処理やデータに係る通信を可能にする任意の通信回線または通信網である。したがって、ネットワークＮＷは、ワイドアクセスネットワーク（ＷＡＮ）、有線ネットワーク、ファイバーネットワーク、無線ネットワーク（たとえば、モバイルまたはセルラーネットワーク）、セルラーまたは電気通信ネットワーク（たとえば、ＷＩＦＩ、ロングタームエボリューション（ＬＴＥ）ネットワーク）、またはそれらの任意の適切な組み合わせであり得る。ネットワークＮＷは、プライベートネットワーク、パブリックネットワーク（たとえば、インターネット）の１つ以上の部分、またはそれらの任意の適切な組み合わせを含み得る。なお、これらは例示であり、これらに限定されることはない。
【０１２７】
図７Ｂは、サーバ装置ＳＶのハード構成および機能構成の一例を示す図である。サーバ装置ＳＶは、ＣＰＵやＭＰＵといったサーバ処理部ＳＶＰ、ＲＯＭやＲＡＭ等のメモリデバイスおよびハードディスクＨＤやＤＶＤ等のストレージデバイスとといったサーバ記憶部ＳＶＭ、上記のネットワークＮＷと繋がるネットワークインターフェースのサーバ通信部ＳＶＣを含み、これらが、内部バス、外部バス、拡張バス等を含むシステムバスといった伝送路を介して互いに接続されたものである。サーバ装置ＳＶは、図示しないが、サーバ管理者等が使用するためのキーボードやマウス等の入力装置、情報を表示するためのディスプイ等の出力装置を備えていてもよい。
【０１２８】
サーバ処理部ＳＶＰは、複数のプログラムを並列に実行することができる、１以上のプロセッサ及びその周辺回路を有し、サーバ装置ＳＶの全体的な動作を統括制御する制御部Ｐｒを備え、上述した他の構成要素との間で制御信号及び情報信号（データ）の送受信を行うとともに、麻雀ゲームの処理、実行、制御に必要な各種の演算処理を行う。そのため、サーバ処理部ＳＶＰは、高速アクセス可能な記憶領域に対して、数値演算ユニット等を用いた加減乗除等の算術演算、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算等、三角関数演算、ベクトル演算等を行うことが可能なように構成されている。
【０１２９】
サーバ記憶部ＳＶＭは、用途に応じた様々な種類のメモリデバイスやストレージデバイスを備える。たとえば、ＲＯＭには、一般に、電源投入後、最初に実行されるＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）が記録されており、これが実行されることにより、ハードディスクＨＤやＤＶＤ等のストレージデバイスに記憶されたプログラムやデータが、制御部Ｐｒによって一旦これらを一時的に記憶するためのＲＡＭに書き出され、それらのプログラムが制御部Ｐｒによって実行される。サーバ記憶部ＳＶＭに記憶されているプログラムは、オペレーティングシステムプログラムや各種アプリケーションプログラム（ドライバ、サーバ用プログラム、ゲームプログラム等を含む）である。オペレーティングシステムプログラムは、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）などであり、本発明に係るゲームが実行され得る限り特に限定されない。
【０１３０】
サーバ装置ＳＶは、ネットワークＮＷを経由してパーソナルコンピュータＰＣや携帯端末ＭＤと通信し、麻雀ゲームの全体の進行を制御し、プレイヤＲＰＬに麻雀ゲームをさせたり、プレイヤＲＰＬと仮想プレイヤの対戦を制御したり、仮想プレイヤの麻雀ゲームの実行を制御したりする。サーバ装置ＳＶは、これらの制御を行うことのできる任意のタイプのサーバコンピューティング装置である。麻雀ゲームは、通常４人のプレイヤが参加して行われるゲームである。
【０１３１】
サーバ記憶部ＳＶＭは、サーバ装置ＳＶが起動されるとローダーによってロードされた、ゲームルール記憶部１０とプレイ方策記憶部２０を有している。ゲームルール記憶部１０は、麻雀ゲームの場合であれば、上述の＜麻雀のルールと用語の説明＞および＜抽象化した１人麻雀のルール＞で説明した麻雀ゲームのルールを記憶しており、適宜サーバ処理部ＳＶＰから参照されて、麻雀ゲームが進行される。たとえば、携帯端末ＭＤを操作する現実のプレイヤＲＰＬが和了（アガリ）を宣言した場合、どのような役で和了を宣言したのか、その役の点数はいくらかなどを計算するため、サーバ処理部ＳＶＰは、ゲームルール記憶部１０を参照する。また、現実のプレイヤＲＰＬではなく、仮想的なゲーム空間における仮想プレイヤＶＰＬを実行する場合においても、仮想プレイヤＶＰＬもゲームルールに従ったプレイが必要となるため、サーバ処理部ＳＶＰは、ゲームルール記憶部１０を参照する。
【０１３２】
プレイ方策記憶部２０は、ゲームルール記憶部１０が記憶するルールに基づいた、それぞれの局面において異なるプレイ方策を記憶する。麻雀ゲームで勝利するためには、上述の＜各種１人麻雀について＞で説明したように、アガリ方策、形式テンパイ方策、降り方策、包括方策などの局面に応じた複数の方策（戦略）が必要である。したがって、プレイ方策記憶部２０は、仮想プレイヤＶＰＬが行うゲームの進行中において、後述する局面判定部４０が判定する複数の局面に対応したプレイ方策を記憶するものである。なお、これらのプレイ方策は、麻雀ゲームのルールに基づいた方策でなければならない。
【０１３３】
サーバ処理部ＳＶＰは、ゲームルール記憶部１０およびプレイ方策記憶部２０を参照しながら、実際に麻雀ゲームを処理したり実行したり制御したりする、ゲーム進行制御部３０、局面判定部４０、およびプレイ方策実行部５０を含む。ゲーム進行制御部３０は、１局面においてそれぞれのプレイヤＲＰＬが行う操作指示を処理し、それぞれのプレイヤＲＰＬおよび仮想プレイヤＶＰＬが行うプレイの実行を行うと共に、複数の局面に亘りゲームの全体の進行を制御する。
【０１３４】
より具体的には、ゲーム進行制御部３０は、１局面内においては、上述の＜抽象化した１人麻雀のルール＞で説明した図１に示したようにゲームを進行させる。たとえば、ゲーム進行制御部３０は、現実のプレイヤＲＰＬや仮想プレイヤＶＰＬに最初に配牌を行い、startからchanceFへ移行する。chanceFへ移行すると、最大想定打牌回数tmaxまでは、他家が牌を牌山から１枚場に出し牌がフーロ等可能な場合にはplayerFへ移行する。そして、牌に応じてフーロを行う場合にはplayerDに移行し、プレイヤは可能なアガリまたは打牌の一つを選択する。アガリを宣言した場合にはagariTへ移行し、アガリをしない場合プレイヤは牌を１枚捨ててchanceFに戻る。playerFへ移行したがフーロしない場合はchanceTへ移行し、ツモを行う。playerFへ移行し、ロンする場合にはagariRに移行する。agariT、agariRに移行すると、ゲームルール記憶部１０に記憶されたルールに基づいて点数（利得）が与えられてゲームが終了する。
【０１３５】
また、ゲーム進行制御部３０は、複数の局面に亘ってゲームの全体の進行を制御する。複数の局面に亘ったゲーム全体の進行とは、たとえば、半荘は東場と南場各４局すなわち通常合計８局から構成されるが（１局中に複数の和了がある場合もある）、第１局の始めから第８局の終わりまでのことを言う。この詳細については、図９を参照して後述する。
【０１３６】
局面判定部４０は、これらの複数の局面の中で進行中の局面がいかなる局面であるかを判定する。半荘は８局から構成されるが、麻雀ゲームは、その半荘が終了した時点で勝利（１位）すればよいので、その複数の局の中で、自分が親の場合と子の場合、自分の手牌やツモ状況、他家の打牌やフーロの状況、その時点での順位などから、アガリ方策、形式テンパイ方策、降り方策、包括方策など、その局面に応じた複数の方策（戦略）を取りうるからである。局面判定部４０は、仮想プレイヤＶＰＬが行うゲームにおいて、その半荘が終了した時点で勝利することを目的として、プレイ方策記憶部２０に記憶された方策を参照し、その方策の中で進行中の局がどのような局面であるかを判定するが、その目的は、ゲーム終了時点で勝利することなので、半荘でもよいし、一荘（１６局）、その他の局数であってもよい。
【０１３７】
プレイ方策実行部５０は、局面判定部４０が判定した局面に対応するプレイ方策記憶部２０に記憶されたプレイ方策に基づいて、仮想プレイヤＶＰＬが他のプレイヤに対応してプレイを実行する。プレイ方策実行部５０が行う１局内のプレイの実行は、ゲーム進行制御部３０が行う１局内のゲーム進行と同様であるが、仮想プレイヤＶＰＬが行う打牌などは、判定されたプレイ方策に基づいて行うことになる。たとえば、判定された方策が降り方策であった場合には、仮想プレイヤＶＰＬは、上述の「降り方策１人麻雀」に基づいてゲームの実行を行う。
【０１３８】
なお、仮想プレイヤＶＰＬは、通常４人中０〜３人である。仮想プレイヤＶＰＬが０人とは、現実のプレイヤＲＰＬが４人であるが、１局の進行中において、現実のプレイヤＲＰＬが、仮想プレイヤＶＰＬに代指しを部分的に（数回の打牌など）依頼する場合も想定する。したがって、情報処理システム１００においては、少なくとも一時点においては、１以上の仮想プレイヤを含むものとする。
【０１３９】
サーバ通信部ＳＶＣは、ネットワークＮＷを介して、パーソナルコンピュータＰＣまたは携帯端末ＭＤと通信を行う。本実施形態における情報処理システム１００においては、サーバ装置ＳＶにおいて、ゲームルール記憶部１０やプレイ方策記憶部２０をサーバ記憶部ＳＶＭに、また、ゲーム進行制御部３０、局面判定部４０およびプレイ方策実行部５０をサーバ処理部ＳＶＰに有しており、ゲームに関する処理、実行、制御の大部分はサーバ装置ＳＶにおいて行われる。そのため、サーバ通信部ＳＶＣとパーソナルコンピュータＰＣまたは携帯端末ＭＤと間で通信される内容は、サーバ通信部ＳＶＣからはその時点における麻雀卓の画面情報とそれに関する管理情報であり、サーバ通信部ＳＶＣへは現実のプレイヤＲＰＬが行う打牌やアガリ宣言などの情報である。
【０１４０】
図７Ｃは、パーソナルコンピュータＰＣのハード構成および機能構成の一例を示す図である。パーソナルコンピュータＰＣは、ＣＰＵやＭＰＵといったＰＣ処理部ＰＣＰ、ＲＯＭやＲＡＭ等のメモリデバイス、ハードディスクＨＤやＤＶＤ等のストレージデバイスとといったＰＣ記憶部ＰＣＭ、上記のネットワークＮＷと繋がるネットワークインターフェースであるＰＣ通信部ＰＣＣ、プレイヤＲＰＬが操作するためのキーボードやマウス等のＰＣ操作部ＰＣＯ、プレイヤＲＰＬに情報を表示するためのディスプレイ等のＰＣ表示部ＰＣＤを含み、これらが、内部バス、外部バス、拡張バス等を含むシステムバスといった伝送路を介して互いに接続されたものである。
【０１４１】
パーソナルコンピュータＰＣは、ネットワークＮＷを経由してサーバ装置ＳＶと通信し、プレイヤＲＰＬに麻雀ゲーム等を表示し、操作を受け付けることができる任意のタイプのユーザデバイスである。たとえば、パーソナルコンピュータＰＣは、ＷＩＮＤＯＷＳ（登録商標）、ｍａｃＯＳ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＧＯＯＧＬＥ（登録商標）ＣＨＲＯＭＥ（登録商標）といったさまざまな異なるオペレーティングシステムをサポートし、実行し得る。なお、これらは例示であり、本発明に係るゲームが実行され得る限り、これらに限定されることはない。
【０１４２】
パーソナルコンピュータＰＣを使用するプレイヤＲＰＬは、ＰＣ通信部ＰＣＣを経由して、最初サーバ装置ＳＶに接続し、麻雀ゲームを使用し始める。サーバ装置ＳＶが提供する麻雀ゲームが有料の場合など、ログインを行うなど所定の手続きを行うこともある。もちろん、この場合には、サーバ装置ＳＶにも対応する認証用プログラムが必要である。
【０１４３】
麻雀ゲームが開始されると、パーソナルコンピュータＰＣは、ＰＣ通信部ＰＣＣを経由して、サーバ装置ＳＶから麻雀卓の画面情報とその管理情報を取得し、ＰＣ処理部ＰＣＰの制御部Ｐｒが、ＰＣ記憶部ＰＣＭにその情報を配置すると共にＰＣ表示部ＰＣＤにその画面情報を表示させる。現実のプレイヤＲＰＬは、ＰＣ表示部ＰＣＤに表示された麻雀卓上の手牌や他家の打牌状況を見ながら、自分の判断で打牌やフーロ、アガリ宣言等をＰＣ操作部ＰＣＯを操作することにより行う。パーソナルコンピュータＰＣは、現実のプレイヤＲＰＬによりＰＣ操作部ＰＣＯが操作されると、その操作により指示された内容をＰＣ通信部ＰＣＣを経由してサーバ装置ＳＶに送信する。
【０１４４】
図７Ｄは、携帯端末ＭＤのハード構成および機能構成の一例を示す図である。携帯端末ＭＤは、ＣＰＵやＭＰＵといった端末処理部ＭＤＰ、ＲＯＭやＲＡＭ等のメモリデバイス等の端末記憶部ＭＤＭ、上記のネットワークＮＷと繋がるネットワークインターフェースである端末通信部ＭＤＣ、プレイヤＲＰＬが操作するためのタッチパネル等の端末操作部ＭＤＯ、プレイヤＲＰＬに情報を表示するためのディスプレイ等の端末表示部ＭＤＤを含み、これらが、内部バス等を含むシステムバスといった伝送路を介して互いに接続されたものである。なお、端末操作部ＭＤＯと端末表示部ＭＤＤは、表示タッチパネル等の共通のデバイスであることが望ましい。
【０１４５】
携帯端末ＭＤは、ネットワークＮＷを経由してサーバ装置ＳＶと通信し、プレイヤＲＰＬに麻雀ゲームを表示し、操作を受け付けることができる任意のタイプのユーザデバイスである。たとえば、携帯端末ＭＤは、モバイルデバイス（たとえば、ラップトップ、スマートフォン、タブレットコンピュータ、等）、専用ゲームデバイス等を含む。携帯端末ＭＤは、ＷＩＮＤＯＷＳ（登録商標）、ＬＩＮＵＸ（登録商標）といったさまざまな異なるオペレーティングシステム、または、ＷＩＮＤＯＷＳＭＯＢＩＬＥ（登録商標）、ＧＯＯＧＬＥ（登録商標）ＡＮＤＲＯＩＤ（登録商標）、ＭＯＢＩＬＥＬＩＮＵＸ（登録商標）等を含む任意の他のモバイルオペレーティングシステムをサポートし、実行し得る。なお、これらは例示であり、本発明に係るゲームが実行され得る限り、これらに限定されることはない。
【０１４６】
麻雀ゲームが開始されると、携帯端末ＭＤは、端末通信部ＭＤＣを経由して、サーバ装置ＳＶから麻雀卓の画面情報とその管理情報を取得し、端末処理部ＭＤＰの制御部Ｐｒが、端末記憶部ＭＤＭにその情報を配置すると共に端末表示部ＭＤＤにその画面情報を表示させる。現実のプレイヤＲＰＬは、端末表示部ＭＤＤに表示された麻雀卓上の手牌や他家の打牌状況を見ながら、自分の判断で打牌やフーロ、アガリ宣言等を端末操作部ＭＤＯを操作することにより行う。携帯端末ＭＤは、現実のプレイヤＲＰＬにより端末操作部ＰＤＯが操作されると、その操作により指示された内容を端末通信部ＭＤＣを経由してサーバ装置ＳＶに送信する。
【０１４７】
上述した情報処理システム１００によれば、複数の局面を有する麻雀ゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを含む情報処理システムを提供することができる。
【０１４８】
＜情報処理装置の例＞
以下では、図８Ａ〜図８Ｄを参照しながら、本発明に係る情報処理装置の例について説明する。なお、重複記載を避けるために、同じ構成要素には同じ符号を付し、上記実施例と異なる点を中心に説明する。図８Ａは、情報処理システム１００ａのシステム構成の一例を示す図である。情報処理システム１００ａは、ネットワークＮＷに接続することで相互に通信が可能なファイルサーバＦＳ、情報処理装置２００であるパーソナルコンピュータＰＣａ、情報処理装置２００である携帯端末ＭＤａと、を含むシステムである。ファイルサーバＦＳは、麻雀ゲームのプログラムＰＲＧを保持し、情報処理装置２００であるパーソナルコンピュータＰＣａと携帯端末ＭＤａに、プログラムＰＲＧを提供する。パーソナルコンピュータＰＣａと携帯端末ＭＤａは、ダウンロードしたプログラムＰＲＧを起動し、現実のプレイヤＲＰＬすなわち人に対して麻雀ゲームを処理、実行、管理する。
【０１４９】
図８Ｂは、ファイルサーバＦＳのハード構成および機能構成の一例を示す図である。ファイルサーバＦＳは、ＣＰＵやＭＰＵといったファイルサーバ処理部ＦＳＰ、ＲＯＭやＲＡＭ等のメモリデバイスおよびハードディスクＨＤやＤＶＤ等のストレージデバイスとといったファイルサーバ記憶部ＦＳＭ、ネットワークＮＷと繋がるネットワークインターフェースのファイルサーバ通信部ＦＳＣを含み、これらが、内部バス、外部バス、拡張バス等を含むシステムバスといった伝送路を介して互いに接続されたものである。ファイルサーバＦＳは、図示しないが、サーバ管理者等が使用するためのキーボードやマウス等の入力装置、情報を表示するためのディスプイ等の出力装置を備えていてもよい。
【０１５０】
ファイルサーバ処理部ＦＳＰは、通常１以上のプロセッサ及びその周辺回路を有し、ファイルサーバＦＳの全体的な動作を統括制御する制御部Ｐｒを備え、上述した他の構成要素との間で制御信号及び情報信号（データ）の送受信を行う。ファイルサーバ記憶部ＦＳＭは、麻雀ゲームのプログラムＰＲＧを記憶するが、ファイルサーバ処理部ＦＳＰは、ファイルサーバ記憶部ＦＳＭが記憶する麻雀ゲームを起動することはない。
【０１５１】
ファイルサーバ記憶部ＦＳＭは、用途に応じた様々な種類のメモリデバイスやストレージデバイスを備える。たとえば、ＲＯＭには、一般に、電源投入後、最初に実行されるＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）が記録されており、これが実行されることにより、ハードディスクＨＤやＤＶＤ等のストレージデバイスに記憶されたプログラムやデータが、制御部Ｐｒによって一旦これらを一時的に記憶するためのＲＡＭに書き出され、それらのプログラムが制御部Ｐｒによって実行される。ファイルサーバ記憶部ＦＳＭに記憶されているプログラムは、オペレーティングシステムプログラムや各種アプリケーションプログラム（ドライバ、サーバ用プログラム、麻雀ゲームのプログラムＰＲＧ等を含む）である。オペレーティングシステムプログラムは、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）などであり、ファイルサーバの機能が実行され得る限り特に限定されない。
【０１５２】
ファイルサーバＦＳは、ネットワークＮＷを経由してパーソナルコンピュータＰＣａや携帯端末ＭＤａと通信し、使用者に操作されたパーソナルコンピュータＰＣａや携帯端末ＭＤａの求めに応じ、プログラムＰＲＧをダウンロードさせる。ファイルサーバＦＳは、これらの機能を行うことのできる任意のタイプのサーバコンピューティング装置である。
【０１５３】
ファイルサーバ通信部ＦＳＣは、ネットワークＮＷを介して、パーソナルコンピュータＰＣａまたは携帯端末ＭＤａと通信を行う。本実施形態における情報処理システム１００ａにおいては、ファイルサーバＦＳにおいて、麻雀ゲームのプログラムＰＲＧは、起動されることなく、プログラムＰＲＧは情報処理装置２００であるパーソナルコンピュータＰＣａや携帯端末ＭＤａで起動されるためにダウンロードされる。そのため、ファイルサーバ通信部ＦＳＣとパーソナルコンピュータＰＣａまたは携帯端末ＭＤａとの間で通信される内容は、主にダウンロードされるプログラムＰＲＧと、そのための制御情報である。
【０１５４】
図８Ｃは、パーソナルコンピュータＰＣａのハード構成および機能構成の一例を示す図である。パーソナルコンピュータＰＣａは、ＰＣ処理部ＰＣＰ、ＰＣ記憶部ＰＣＭ、ＰＣ通信部ＰＣＣ、プレイヤＲＰＬが操作するためのキーボードやマウス等のＰＣ操作部ＰＣＯ、プレイヤＲＰＬに情報を表示するためのディスプレイ等のＰＣ表示部ＰＣＤを含み、これらが、内部バス等を含むシステムバスといった伝送路を介して互いに接続されたものである。
【０１５５】
なお、パーソナルコンピュータＰＣａは、ファイルサーバＦＳからダウンロードした麻雀ゲームのプログラムＰＲＧを起動するので、ＰＣ処理部ＰＣＰの制御部Ｐｒは、麻雀ゲームの処理、実行、制御に必要な各種の演算処理を行うように構成されている。パーソナルコンピュータＰＣａは、ネットワークＮＷを経由して麻雀ゲームのプログラムＰＲＧをダウンロードし、そのプログラムＰＲＧを起動、処理、実行、制御することができる任意のタイプのユーザデバイスである。
【０１５６】
パーソナルコンピュータＰＣａを使用するプレイヤＲＰＬは、ＰＣ通信部ＰＣＣを経由して、最初ファイルサーバＦＳに接続し、麻雀ゲームをダウンロードする。その後、プレイヤＲＰＬは、パーソナルコンピュータＰＣａ上でプログラムＰＲＧを起動し、麻雀ゲームを開始する。パーソナルコンピュータＰＣａは、麻雀ゲームの全体の進行を制御し、プレイヤＲＰＬに麻雀ゲームをさせたり、プレイヤＲＰＬと仮想プレイヤの対戦を制御したり、仮想プレイヤの麻雀ゲームの実行を制御したりする。パーソナルコンピュータＰＣａは、これらの制御を行うことのできる任意のタイプのコンピューティング装置である。
【０１５７】
ＰＣ記憶部ＰＣＭは、プログラムＰＲＧがローダーによってロードされたゲームルール記憶部１０とプレイ方策記憶部２０を有している。ＰＣ処理部ＰＣＰは、ゲームルール記憶部１０およびプレイ方策記憶部２０を参照しながら、実際に麻雀ゲームを処理したり実行したり制御したりする、ゲーム進行制御部３０、局面判定部４０、およびプレイ方策実行部５０を含む。これらの構成要素は、上記実施例で述べたとおりなので説明を省略する。
【０１５８】
麻雀ゲームが開始されると、パーソナルコンピュータＰＣａがプログラムＰＲＧをロードし、ＰＣ処理部ＰＣＰの制御部Ｐｒが、ＰＣ記憶部ＰＣＭにそのプログラム情報を配置すると共に、麻雀卓の画面情報をＰＣ表示部ＰＣＤに表示させる。現実のプレイヤＲＰＬは、ＰＣ表示部ＰＣＤに表示された麻雀卓上の手牌や他家の打牌状況を見ながら、自分の判断で打牌やフーロ、アガリ宣言等をＰＣ操作部ＰＣＯを操作することにより行う。パーソナルコンピュータＰＣａは、現実のプレイヤＲＰＬによりＰＣ操作部ＰＣＯが操作されると、その操作により指示された内容をＰＣ処理部ＰＣＰで処理する。ＰＣ処理部ＰＣＰは、ゲーム進行制御部３０を有しているので、麻雀ゲームの全体の進行を制御する。また、ＰＣ処理部ＰＣＰは、局面判定部４０およびプレイ方策実行部５０を有しているので、仮想的なゲーム空間における仮想プレイヤＶＰＬのプレイを実行する。麻雀ゲームは通常４人で行うので、パーソナルコンピュータＰＣａは、１人の現実のプレイヤＲＰＬと３人の仮想プレイヤＶＰＬが対戦する仮想的な場（空間）を提供する。
【０１５９】
図８Ｄは、携帯端末ＭＤａのハード構成および機能構成の一例を示す図である。携帯端末ＭＤａは、端末処理部ＭＤＰ、端末記憶部ＭＤＭ、端末通信部ＭＤＣ、プレイヤＲＰＬが操作するためのタッチパネル等の端末操作部ＭＤＯ、プレイヤＲＰＬに情報を表示するためのディスプレイ等の端末表示部ＭＤＤを含み、これらが、内部バス等を含むシステムバスといった伝送路を介して互いに接続されたものである。なお、端末操作部ＭＤＯと端末表示部ＭＤＤは、表示タッチパネル等の共通のデバイスであることが望ましい。
【０１６０】
なお、携帯端末ＭＤａは、ファイルサーバＦＳからダウンロードした麻雀ゲームのプログラムＰＲＧを起動するので、端末処理部ＭＤＰの制御部Ｐｒは、麻雀ゲームの処理、実行、制御に必要な各種の演算処理を行うように構成されている。携帯端末ＭＤａは、ネットワークＮＷを経由して麻雀ゲームのプログラムＰＲＧをダウンロードし、そのプログラムＰＲＧを起動、処理、実行、制御することができる任意のタイプのモバイルデバイスである。
【０１６１】
携帯端末ＭＤａを使用するプレイヤＲＰＬは、端末通信部ＭＤＣを経由して、最初ファイルサーバＦＳに接続し、麻雀ゲームをダウンロードする。その後、プレイヤＲＰＬは、携帯端末ＭＤａ上でプログラムＰＲＧを起動し、麻雀ゲームを開始する。携帯端末ＭＤａは、麻雀ゲームの全体の進行を制御し、プレイヤＲＰＬに麻雀ゲームをさせたり、プレイヤＲＰＬと仮想プレイヤの対戦を制御したり、仮想プレイヤの麻雀ゲームの実行を制御したりする。携帯端末ＭＤａは、これらの制御を行うことのできる任意のタイプのモバイルコンピューティング装置である。
【０１６２】
端末記憶部ＭＤＭは、プログラムＰＲＧがローダーによってロードされたゲームルール記憶部１０とプレイ方策記憶部２０を有している。端末処理部ＭＤＰは、ゲームルール記憶部１０およびプレイ方策記憶部２０を参照しながら、実際に麻雀ゲームを処理したり実行したり制御したりする、ゲーム進行制御部３０、局面判定部４０、およびプレイ方策実行部５０を含む。これらの構成要素は、上記実施例で述べたとおりである。
【０１６３】
麻雀ゲームが開始されると、携帯端末ＭＤａがプログラムＰＲＧをロードし、端末処理部ＭＤＰの制御部Ｐｒが、端末記憶部ＭＤＭにそのプログラム情報を配置すると共に、麻雀卓の画面情報を端末表示部ＭＤＤに表示させる。現実のプレイヤＲＰＬは、端末表示部ＭＤＤに表示された麻雀卓上の手牌や他家の打牌状況を見ながら、自分の判断で打牌やフーロ、アガリ宣言等を端末操作部ＭＤＯを操作することにより行う。携帯端末ＭＤａは、現実のプレイヤＲＰＬにより端末操作部ＭＤＯが操作されると、その操作により指示された内容を端末処理部ＭＤＰで処理する。端末処理部ＭＤＰは、ゲーム進行制御部３０を有しているので、麻雀ゲームの全体の進行を制御する。また、端末処理部ＭＤＰは、局面判定部４０およびプレイ方策実行部５０を有しているので、仮想的なゲーム空間における仮想プレイヤＶＰＬのプレイを実行する。麻雀ゲームは通常４人で行うので、携帯端末ＭＤａは、１人の現実のプレイヤＲＰＬと３人の仮想プレイヤＶＰＬが対戦する仮想的な場（空間）を提供する。
【０１６４】
上述した情報処理装置２００（パーソナルコンピュータＰＣａや携帯端末ＭＤａ）によれば、複数の局面を有する麻雀ゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを含む情報処理装置を提供することができる。
【０１６５】
＜情報処理方法の例＞
図９と図８Ａ〜Ｄを参照し、本発明に係る情報処理装置２００である携帯端末ＭＤａにおける情報処理方法の概要を説明する。なお、フローチャートにおける“Ｓ”はステップを意味する。この情報処理方法の例では、半荘（８局）の麻雀ゲームを例にする。現実のプレイヤＲＰＬが携帯端末ＭＤａにおいて麻雀ゲームを起動すると、プログラムＰＲＧのプログラム情報が読み込まれ、ゲームルール記憶部１０とプレイ方策記憶部２０が端末記憶部ＭＤＭに配置され、端末処理部ＭＤＰにおいてゲーム進行制御部３０、局面判定部４０、プレイ方策実行部５０が実行可能な状態となる。
【０１６６】
ゲーム進行制御部３０は、Ｓ１００において、プレイヤＲＰＬとその他の仮想プレイヤＶＰＬの座席を決める。決め方は、どのようなものであってもよいが、たとえば、東・南・西・北などの牌とサイコロを操作することにより、それぞれの座席を決定する。座席が決定したら、ゲーム進行制御部３０は、Ｓ１０２において、起家を決める。この決め方もどのようなものであってもよいが、たとえば、東のプレイヤがサイコロを１回振って仮親を決め、仮親がもう１回サイコロを振って、仮親から反時計まわりに数えて、サイコロの目の位置に当たるプレイヤが起家となる。
【０１６７】
起家が決まったら、ゲーム進行制御部３０は、Ｓ１０４において、親が１４枚、子が１３枚ずつとなるように牌を配給（配牌）する。端末表示部ＭＤＤは、麻雀卓を現実のプレイヤＲＰＬから見た位置から自身の手牌と場が見えるように画面に表示する。ゲーム進行制御部３０は、Ｓ１０６において、今の番である親が仮想プレイヤＶＰＬであるか否かをチェックする。今の番が現実のプレイヤＲＰＬである場合、ゲーム進行制御部３０は、Ｓ１２６において、プレイヤＲＰＬの打牌の入力を待つ。そして、プレイヤＲＰＬが打牌する牌をタッチパネル等の端末操作部ＭＤＯから指示されると、ゲーム進行制御部３０は、指示された牌を場に切る処理を行う。
【０１６８】
ゲーム進行制御部３０がＳ１０６において今の番が仮想プレイヤＶＰＬであると判断した場合、局面判定部４０は、Ｓ２００において、今の局面がどのような局面かを判定する。どのように判定するかを、図５を参照して説明する。局面判定部４０は、Ｓ２０２において、仮想プレイヤＶＰＬ自身の手牌が４シャンテン以上か否かをチェックする。通常配牌直後は、４シャンテン以上である場合が多いが、その場合、局面判定部４０は、Ｓ２０４において、場においてリーチか２フーロした他家がいるか否かをチェックする。通常配牌直後には、そのような他家はいないので、Ｓ２０６において、局面判定部４０は、今の局面はルールベースでゲームを行う局面であると判定する。また、１局がある程度進行し、場においてリーチか２フーロした他家がいる場合は、Ｓ２０８において、局面判定部４０は、今の局面は降り方策でゲームを行う局面であると判定する。
【０１６９】
１つの局もある程度進行すると、仮想プレイヤＶＰＬの手牌も４シャンテン未満になってくる。その場合、局面判定部４０は、Ｓ２０２においてＮＯと判定するので、Ｓ２１０において、仮想プレイヤＶＰＬの手牌が１シャンテン以下か、すなわち１シャンテンまたはテンパイしている場合か否かをチェックする。そのいずれかである場合、局面判定部４０は、Ｓ２１２において、今の局面は包括方策でゲームを行う局面であると判定する。
【０１７０】
２シャンテン以上の場合、局面判定部４０は、Ｓ２１４において、リーチかフーロした他家がいるか否をチェックする。そのような他家がいない場合、局面判定部４０は、Ｓ２１６において、今の局面はアガリ方策でゲームを行う局面であると判定する。そのような他家がいる場合には、局面判定部４０は、Ｓ２１８において、各種１人麻雀の結果を特徴とする価値推定を行う。価値推定のしかたは、図６に示され、上記の＜１人麻雀の結果を特徴とする価値推定＞で説明したとおりである。
【０１７１】
Ｓ２００において局面判定部４０が判定すると、プレイ方策実行部５０は、Ｓ１１０において、プレイ方策記憶部２０に記憶され、局面判定部４０が判定したそれぞれのプレイ方策に基づいて他家に対応してプレイを実行する。Ｓ１１０において仮想プレイヤＶＰＬが、またはＳ１２６において現実のプレイヤＲＰＬが自分の番を実行した場合、ゲーム進行制御部３０は、Ｓ１１２において、アガリのプレイヤがいるか否かをチェックする。アガリのプレイヤがいない場合、ゲーム進行制御部３０は、Ｓ１２８において、打牌回数が最大想定打牌回数tmaxに到達したか否かをチェックする。まだ最大想定打牌回数tmaxに到達していない場合、ゲーム進行制御部３０は、次の番のプレイヤに番を回し、Ｓ１０６に戻り、上記をのステップを繰り返す。最大想定打牌回数tmaxに到達した場合、ゲーム進行制御部３０は、Ｓ１３０において、進行していた局を流局とする（本例では、形式テンパイは考慮しないものとする）。
【０１７２】
Ｓ１１２においてアガリ（和了）のプレイヤがいる場合、ゲーム進行制御部３０は、Ｓ１１４において、ゲームルール記憶部１０に記憶されている麻雀のルールを参照し、アガリ役の判定とその点数を計算する。和了したプレイヤが親であった場合すなわち子でなかった場合親を連荘するため、ゲーム進行制御部３０は、Ｓ１０４に戻り、東１局として上記のステップを繰り返す。和了したプレイヤが子であった場合、ゲーム進行制御部３０は、Ｓ１１８において下家に親を交代し、Ｓ１２０において東２局として局を進める。ゲーム進行制御部３０は、上記のステップを繰り返し、局を進めて南場になり、さらに局を進めていき、Ｓ１２２において、進行中の局が南４局か否かをチェックする。南４局でアガリがあるまでは、Ｓ１０４に戻り、ゲームを進行させる。南４局で和了があった場合、ゲーム進行制御部３０は、Ｓ１２４において、その時点で４人がそれぞれ持っている点数から順位を決定する。
【０１７３】
上述したことは、少なくとも一時点において１以上の仮想プレイヤを含む３人以上のプレイヤが、いずれかの勝利が決定されるまでの進行において複数の局面を有する麻雀ゲームを実行する情報処理方法であって、その仮想プレイヤが、複数の局面の中で進行中の局面がいかなる局面であるかを判定することと、判定した局面に対応し、ゲームのルールに従ったプレイ方策に基づいて、他のプレイヤに対応してプレイを実行することとを含む情報処理方法である。また、これらの方法を含むプログラムＰＲＧを記憶したコンピュータ読み取り可能な情報記憶媒体を提供してもよい。これらによれば、複数の局面を有する麻雀ゲームにおいて、短期的な１局面毎の勝利だけではなく、複数局面を通した長期的で総合的な勝利を得ることができるプレイヤとして強い仮想プレイヤを含む情報処理方法およびこれをハードウェアに機能させるプログラムおよびそのプログラムを含むコンピュータ読み取り可能な情報記憶媒体を提供することができる。
【０１７４】
なお、本発明は、例示した実施例に限定するものではなく、特許請求の範囲の各項に記載された内容から逸脱しない範囲の構成による実施が可能である。すなわち、本発明は、主に特定の実施形態に関して特に図示され、かつ説明されているが、本発明の技術的思想および目的の範囲から逸脱することなく、以上述べた実施形態に対し、数量、その他の詳細な構成において、当業者が様々な変形を加えることができるものである。
【符号の説明】
【０１７５】
１００    情報処理システム
２００    情報処理装置
１０      ゲームルール記憶部
２０      プレイ方策記憶部
３０      ゲーム進行制御部
４０      局面判定部
５０      プレイ方策実行部
ＮＷ      ネットワーク
ＳＶ      サーバ装置
ＳＶＣ    サーバ通信部
ＳＶＰ    サーバ処理部
ＳＶＭ    サーバ記憶部
ＨＤ      ハードディスク
ＰＣ      パーソナルコンピュータ
ＰＣＣ    ＰＣ通信部
ＰＣＰ    ＰＣ処理部
ＰＣＭ    ＰＣ記憶部
ＰＣＯ    ＰＣ操作部
ＰＣＤ    ＰＣ表示部
ＭＤ      携帯端末
ＭＤＣ    端末通信部
ＭＤＰ    端末処理部
ＭＤＭ    端末記憶部
ＭＤＯ    端末操作部
ＭＤＤ    端末表示部
ＦＳ      ファイルサーバ
ＦＳＣ    ファイルサーバ通信部
ＦＳＰ    ファイルサーバ処理部
ＦＳＭ    ファイルサーバ記憶部
ＰＲＧ    プログラム
ＲＰＬ    実プレイヤ（人）
ＶＰＬ    仮想プレイヤ
【図１】
2019083997.tif 000054
【図２】
2019083997.tif 000055
【図３】
2019083997.tif 000056
【図４】
2019083997.tif 000057
【図５】
2019083997.tif 000058
【図６】
2019083997.tif 000059
【図７Ａ】
2019083997.tif 000060
【図７Ｂ】
2019083997.tif 000061
【図７Ｃ】
2019083997.tif 000062
【図７Ｄ】
2019083997.tif 000063
【図８Ａ】
2019083997.tif 000064
【図８Ｂ】
2019083997.tif 000065
【図８Ｃ】
2019083997.tif 000066
【図８Ｄ】
2019083997.tif 000067
【図９】
2019083997.tif 000068