MTGを科学しよう

MTG(magic the gathering)のツールを作成したり、科学的に最適なプレイを考えてみたい

MTGゲーム理論 展開ゲーム

 MTGというゲームについて、ゲーム理論的な言葉をあてはめていく。

 まず、MTGのプレイヤーは2人で、勝ち負けを競うため非協力関係のゼロ和ゲームであり、順番にプレイを行う展開型のゲームである。また、ドローという偶然要素が含まれ、相手の手札は非公開の情報であり、情報不完備のゲームであるといえる。

展開型ゲームとは

 ここでいう展開型のゲームとはプレイヤーの選択によって局面がかわっていくゲームのことである。まず下の図を見てほしい。プレイヤーP0,P1,P2がいて、初めにプレイヤーP0がO1でe1かe2の行動を選択する。仮にe2を選んだとして、次にプレイヤーP1がO3の位置でLかRの行動を選択する。ここでも仮にRを選んだとして、次にP2がO6の位置でLかRを選択する。Rを選んだとするとt5という結果が得られる。このように前の選択が後の選択に影響するようなものが展開型ゲームである。

f:id:Delver:20150720130025j:plain

画像は 鈴木光男 著 共立出版 [ゲーム理論入門] P.91より

 

MTGにおける「プレイヤー」とは

  さて、ここではプレイヤーが3人としているが、MTGにおいてもプレイヤーは3人と扱われる。その残り一人のプレイヤーは偶然手番 と呼ばれるもので、MOでいうところのシャッフラーさんである。シャッフラーさんのプレイ(e1かe2の選択)はランダムに決められる。mtgにおいては雑にいうとプレイヤー1→シャッフラー→プレイヤー2→シャッフラー→プレイヤー1→。。。の順にプレイする。

 

MTGの複雑さについて

 この枝はターン数を重ねるにつれて指数的に広がっていき、頂点tの数は膨大になる。絵では行動が2通りなのでまだ枝別れが少ないが、クリーチャーが5体いればアタックフェイズにそれぞれのクリーチャーについてアタックするかしないか選択するので2^5=32通り存在し、ブロックフェイズでは3体のアタックに対してブロッカーが5体いれば4^5=1024通り存在する。メインフェイズにはどのスペルをプレイするかの選択があり最大で2^7=128程度で、ドローについても最大で53枚の中からの選択となる。これらは掛け算で増えていき、これらの数字から計算すると1ターンで10^8程度の頂点が存在する。MTGは大体15~30ターン程度のゲームで、30ターンとするとゲーム全体で10^240程度の頂点があることになる。将棋の場合の数が10^220程度らしく同程度であるので、プレイヤーのAI化を行うにあたっては計算量を落とす方法の検討として将棋のAIは参考にしたい。

 

思考方法について

 最終的な頂点tの利得(結果)は勝ち負けであるが、この大きな木をすべて試行するのは不可能である。そのため、数ターン先までの枝分かれを計算して、その時点での利得を調べてプレイを選択する。ここでの利得はMTGで言うアドバンテージにあたり、数ターン先の状況を呼んでどういったアドを優先してプレイするかを選択するという多くのプレイヤーが行っている行動に近いものである。

 将棋のAIなんかも何手先かまで計算して、盤面を評価してプレイを選択しているはずである。この辺のアルゴリズムについて調べてみたほうがよさそうだ。