簡易ポケモン:2匹構築1匹選出ゲーム
強い構築をつくりたい!!
ポケモン対戦はたくさんいるポケモンの中から6匹だけ選んで手持ちに入れ、対戦開始時にその中からさらに選抜を行うという二段階の選抜プロセスで戦うポケモンを決めます。
ところで対戦開始後のプレイングや選出のゲームについては考察がありますが、構築の作り方について数学的にモデル化・考察した文章は多くありません。しかし、実際対戦しているとこの構築の作り方こそ勝つために重要な要素が含まれています。
今回はポケモンを対戦を単純化したゲームを考え、強い構築の作り方を探っていきます。
実際のポケモン対戦は数百のポケモンの中から6匹を選んで構築を作り、お互いの構築を見た後で3匹を選出して対戦をスタートさせますが、6匹→3匹のゲームは難しすぎたので簡略化して2匹構築→1匹選出のゲームを考えてみます。今回扱う具体例では使用可能ポケモンのプールも4匹に制限しています。
ルール・モデル化
以下のようなルールで簡略化した構築作りゲームをモデル化します。
それぞれのポケモンは互いに有利・不利・互角のいずれかの関係を持つ.(有利な相手には利得1,不利な相手には利得-1,互角な相手には利得0とします)
互いのプレイヤーは二匹のポケモンを選んで 構築 をつくる。
作った構築を見せ合った後で一匹のポケモンを 選出 する。
選出したポケモン同士の関係を見て有利だった方の勝ち
分析方法
上記のゲームをゲーム理論の方法を使って解析していきます。
選出部分の勝率に関しては2×2の利得行列で表されるゲームをミニマックス法で解くことで ナッシュ均衡における勝率 を求めることができます。
ナッシュ均衡とは次のような状態です。(ゲーム理論は専門外なので詳しくはちゃんとした文献をあたってほしいです。)
二人対戦ゲームの場合他のプレイヤーは対戦相手の一人しかいないわけなので、対戦相手がミスして戦略を変えない限り勝率をこれ以上高めることができない、という意味で互いのプレイヤーが最善を尽くしている状態のことを指します。
対戦する2チームを固定して選出ゲームについてナッシュ均衡時の勝率を計算するという作業をすべての構築の間で繰り返すことで構築間の有利不利を算出します。
具体例1:4すくみのプール
AはBに強く、BはCに強く、CはDに強く、DはAに強いと4すくみになっているゲームを考えます。
ちなみに計算を始める前にどんな構築が強いか予想してからはじめると計算結果と見比べて楽しめると思うので考えておいてね。今回の場合プールの対称性からACのように対角線で組む構築か、ABのように隣り合うポケモンで組むかの実質2択になります。
例えばAD対ABの対戦を考えましょう。
利得行列は次のようになります。
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& A & B \\ \hline
A & 0 & 1 \\
D & 1 & 0
\end{array}
$$
最初なので丁寧に解きます。こちらのAの選出率を$${x}$$,Dの選出率を$${1-x}$$とすると相手がAを選出した時の利得期待値は次のようになります。
$$
\begin{align}
&0\times (こちらのAの選出率)+1\times (こちらのDの選出率)\\
&=0\times x+1\times (1-x)\\
&=1-x
\end{align}
$$
同様に相手がBを選出した時の利得は以下
$$
\begin{align}
&1\times (こちらのAの選出率)+0\times (こちらのDの選出率)\\
&=1\times x+0\times (1-x)\\
&=x
\end{align}
$$
相手はこれらの期待値が低くなるように選出するので利得は以下になります。
$$
(利得)=\min{(x,1-x)}
$$
これを最大化するようにAとDの選出率を決める=$${x}$$を決定するので$${x=\frac12}$$で利得は$${\frac{1}{2}}$$となります。
利得が正なのでAD側有利ということがわかりました。
とこのような計算を全ての構築の間でやっていきます。
といっても対称性からAB対BC、BC対CD、CD対ADは同じ計算ですし、AB対CD構築が互角で利得0なのは少し考えれば当たり前なので実質的に対角線の構築対隣辺の構築、AD対ACを計算するだけになります。ちゃちゃっとやっちゃいましょう。
AD対ACの利得行列は次になります
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& A & C \\ \hline
A & 0 & 0 \\
D & 1 & -1
\end{array}
$$
利得は次のようになるので最大化するように$${x}$$を決定します
$$
\min{(1-x,-1+x)}
$$
$${x=1}$$、つまりこちらはAの確定選出で利得$${0}$$となりました。対角線の構築と隣り合うポケモンを合わせた構築とでは互角の相性になりそうですね。
以上の結果をまとめます。
したがって隣り合うポケモン同士で作った構築同士で4すくみを作り、対角線の構築はどの構築に対しても互角に戦えることになります。
4すくみの流行を読み切る自信があるなら隣のポケモンで組んでメタゲームに参加、安定した成績を出したいなら対角線構築のいずれかを選ぶのが良いといったところでしょうか。
具体例2:強いポケモンがいる4すくみのプール
さて、もとのプールが対称的ですと出てくる結果も具体例1のように対称的な4すくみが出てくるだけになってあまり面白みがありません。
4すくみの中に強いポケモン を作って対称性を壊します。
以下のように4すくみの中にAからCの矢印を追加して元の4すくみに比べてAが明確に強い という状況を作ります。(逆にCは明確に弱くなる)
このような状況だともはやABとBCとCDとADは等価ではなくなっています。前節と同様に計算してどのような構築強いか確かめていきましょう。
あ、計算始める前に予想タイムです。みなさんどのような構築が強いと思いますか?Aが強くて、Aに強いDがその次に強いからAD最強?Cは二人に負けるから弱そうに見えてAメタのDに強いからACでADをメタるのが面白そう?それとも最強はなくてやっぱり4すくみないし3すくみになる?色々あると思うので考えておいてください。
考えましたか?考えましたね?それでは計算スタートです!!
計算
構築は6通りあってミラーは自明に互角なので計算すべきマッチングは$${_6C_5=15}$$通り。気合で計算していきます。
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& B & C \\ \hline
A & 1 & 1 \\
B & 0 & 1
\end{array}
$$
ナッシュ均衡の利得は1です。
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& C & D \\ \hline
B & 1 & 0 \\
C & 0 & 1
\end{array}
$$
ナッシュ均衡の利得は1/2です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& A & D \\ \hline
C & -1 & 1 \\
D & 1 & 0
\end{array}
$$
ナッシュ均衡の利得は1/3です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& A & B \\ \hline
A & 0 & 1 \\
D & 1 & 0
\end{array}
$$
ナッシュ均衡の利得は1/2です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& C & D \\ \hline
A & 1 & -1 \\
B & 1 & 0
\end{array}
$$
ナッシュ均衡の利得は0です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& B & C \\ \hline
A & 1 & 1 \\
D & 0 & -1
\end{array}
$$
ナッシュ均衡の利得は1です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& A & B \\ \hline
A & 0 & 1 \\
C & -1 & -1
\end{array}
$$
ナッシュ均衡の利得は0です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& B & C \\ \hline
A & 1 & 1 \\
C & -1 & 0
\end{array}
$$
ナッシュ均衡の利得は1です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& C & D \\ \hline
A & 1 & -1 \\
C & 0 & 1
\end{array}
$$
ナッシュ均衡の利得は1/3です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& A & D \\ \hline
A & 0 & -1 \\
C & -1 & 1
\end{array}
$$
ナッシュ均衡の利得は-1/3です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& A & B \\ \hline
B & -1 & 0 \\
D & 1 & 0
\end{array}
$$
ナッシュ均衡の利得は0です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& B & C \\ \hline
B & 0 & 1 \\
D & 0 & -1
\end{array}
$$
ナッシュ均衡の利得は0です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& C & D \\ \hline
B & 1 & 0 \\
D & -1 & 0
\end{array}
$$
ナッシュ均衡の利得は0です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& A & D \\ \hline
B & -1 & 0 \\
D & 1 & 0
\end{array}
$$
ナッシュ均衡の利得は0です
$$
\def\arraystretch{1.5}
\begin{array}{c|cc}
& B & D \\ \hline
A & 1 & -1 \\
C & -1 & 1
\end{array}
$$
ナッシュ均衡の利得は0です
お疲れさまでした。以上をまとめて構築同士の有利不利を書きだすと次のようになります
$$
\def\arraystretch{1.5}
\begin{array}{c|cccccc}
& AB & BC & CD & AD & AC & BD \\ \hline
AB & 0 & 1 & 0 & -\frac12 & 0 & 0 \\
BC & -1 & 0 & \frac12 & -1 & -1 & 0 \\
CD & 0 & -\frac12 & 0& \frac13 & -\frac13 & 0 \\
AD & \frac12 & 1 & -\frac13& 0 & \frac13 & 0 \\
AC & 0 & 1 & \frac13 & -\frac13 & 0 & 0 \\
BD & 0 & 0 & 0 & 0 & 0 &0
\end{array}
$$
ABの構築がACの構築の下位互換になっています(ABがACに支配されている)。したがってABを省いた5つの構築の間の相性関係は次のようなダイアグラムで表すことができます。
AC、CD、ADの三すくみを基軸としてCDピンメタのBC構築が加わるような構図で、相性の外にBDがいます。
ちなみにこの構築間の相性を元にナッシュ均衡を求めるとBC, CD, AD ,CD, AC,BDの構築がそれぞれ$${0:p:p:p:q}$$の比率で均衡となります。(p,qは任意)
考察
さて、計算前に考えた相性関係と比べていかがだったでしょうか?
ナッシュ均衡において(相性関係ないBDを除くと)AD、AC、CDが均等な比率で存在し、BCが存在していません。このことからこのゲームを突き詰めていくとADとACとCDによる三すくみじゃんけんに帰着するのではないかと思います。
じゃんけんに参加したくない人はBDを握りましょう。
要点としては以下のようになるかと思います。
突き詰めるとAC, AD, CDによる3すくみ
主要な3すくみの中にBを使った構築が入っていない
どんな環境においてもBD構築は相性関係なし
一人だけ有利の矢印が二つ出ていて明らかに有利そうなAがいるにもかかわらず、結局均等な3すくみになってしまうという結果が出ました。意外ですね。
今回に関して言えば 最強のA、Aに強いD→メタ、Dに強いC→メタメタで次の3すくみが成り立ったとみることができます。
強い子+メタ → 強い子+メタメタ → メタ+メタメタ
Dに強いCを加えてADに強くなりそうなACの構築が逆にADにカモられる相性関係になっているのは興味深いです。
また、今回の問題は突き詰めると3すくみになりますが、単体同士の相性関係を見ただけですぐにそれがわかる人は少ないのではないでしょうか。つまり、環境がナッシュ均衡から大きくずれることが期待できるためそこを利用することを考えることもできます。
例えばこの単体関係をみて初見でCDを握る人はまずいないのではないでしょうか?そうするとCDにのみ不利を取られるADの構築は握り得となる・・・といった予想を立てることができます。
また、ABがACの下位互換になるのがわかっていなかったりなんとなくでBCを握る人も出てくることを考えると「突き詰めた結果」よりもCDの構築に不利な環境になることも予想できます。
感想
今回計算進めながらマジか~~ってなって部分が多かったです。
まじかポイント1
具体例2で最終的な3すくみから除外されるポケモン、CじゃなくてBなのかよ。 しかも割合が少なくなるとかじゃなくて完全に排除される。
これ考えてみると"Cに強い"っていう仕事がAと被ってしまってる点でBの採用理由がなくなっちゃうのですよね。強いポケモンがいると環境から消えるのは「強いポケモンに狩られるポケモン」ではなく、「強いポケモンと競合するポケモン」ということなのかもしれません。今回の内容だけからそこまで一般化していいかわかりませんが。
まじかポイント2
ADをACでメタれない。むしろカモ側。Aを切ってCDのセットで組まないとADを狩る側に回れない。
結局CでDに有利取っただけでは相手はAを自由に出せるので選出択にならないのですよね。ADをメタるつもりならAを入れられないリスクを負ってでもAに有利+Dに有利をセットで入れる必要があると。
などなど、事前に予想していたよりもだいぶ違った結果がでて、考察を進めるうちになるほど~となった点も多かったです。
そして課題として以下の点が残ります。
単体ポケモンに関する相性関係から構築に関する相性関係を予想するのは困難
毎回総当たりで構築間の相性関係を計算するのは計算コストが大きい
結局今回の結果が今回のプールだけの現象なのか、他のプールでも似たようなことが成り立つのかっていうのが問題として挙げられます。今回のプールでしか成り立たない現象を考察しても実際の対戦環境には応用できないわけですし・・・
そのため、単体の相性を見ただけで複雑な計算を介すことなく構築間の相性関係をある程度予想できるのが理想です。
これに関しては今回四角形ではなく三角形の部分が3すくみとして残ったわけですので、もっと複雑な相性関係のネットワークでも小さい三角形を見つけていけばそれを中心にした構築間の相性関係を見つけられるんじゃないかみたいなことを考察中です。うまくいけば続編が作れるかも?
謝辞
ぴーなつ(@loveyouriko)さんに選出ゲームの計算を提供していただきました。ありがとうございました。