真剣に取り組みたい人のための、モンテカルロ進化シミュレーション
C++勉強が進みます。今日はタカハトゲームの進化をシミュレートをしてみましょう。
タカハトゲームとは、強気に振る舞うか、弱気に振る舞うかというゲームだと考えて構いません。
- タカ同士が出会うと、死闘を繰り広げ、資源もコストも分け合います。利得は
- タカとハトと出会うと、ハトは問答無用で資源を得 (利得は )、ハトは資源をえることができず、利得はです。
- ハト同士が出会うと、仲良く資源をわけあい、利得はです。
利得行列は次のようにかけます:
\begin{align} \begin{pmatrix} \frac{V-C}{2} & V\\ 0 & \frac{V}{2} \end{pmatrix} \end{align}
個人の戦略(形質) は、タカとして振る舞う確率だとします(よって はハトとして振る舞う確率)。このような は混合戦略と呼ばれます。 いつもどおり、集団が戦略 で占められているとします。このとき、変異体 が侵入できるかを計算してみましょう。
これに基いて利得を計算しますが、ここでカンタンのために次のように仮定します:
- 産子数は非常に大きい;
- ゲームをプレイするのは 人の大人たちである;
- 利得は大人の産子数に寄与する; *1
これにより、突然変異個体のこども一個体あたりの利得 は、
\begin{align} \pi_\mathrm{m} = p_\mathrm{m} \left(\frac{V-C}{2} p_{-\mathrm{m}}+ V (1-p_{-\mathrm{m}}) \right) +(1-p_\mathrm{m}) \left( 0+ \frac{V}{2}(1-p_{-\mathrm{m}}) \right) \end{align}
となります。ここで、 \begin{align} p_{-\mathrm{m}} = \frac{\overline{p} - \frac{1}{N} p_\mathrm{m} }{1-\frac{1}{N}} \end{align} は突然変異個体を除いた、集団における平均値です。
利得が適応度に及ぼす効果をスケールするため、淘汰の強さを として、変異体の適応度 を、 とします。 が大きくなればなるほど、利得が適応度に及ぼす効果は強くなります(強淘汰)。 の場合は、利得が一切進化に影響を及ぼさないという、中立的な状況に相当します*2。
さらに、有限集団を仮定しているために、在来型pの適応度が突然変異型の戦略に依存してしまいます。在来型の利得は
\begin{align} \pi_\mathrm{w} = p \left(\frac{V-C}{2} q+ V (1-q) \right) +(1-p) \left( 0+ \frac{V}{2}(1-q) \right) \end{align}
です。ここで、 \begin{align} q = \frac{1}{N-1}p_\mathrm{m} +\frac{N-2}{N-1}p \end{align} は在来型が対戦する相手の平均戦略です。よって突然変異型の相対適応度は、
\begin{align} w = \frac{N(1+s\pi_{\mathrm{m}})}{1+s\pi_{\mathrm{m}}+(N-1)(1+s\pi_{\mathrm{w}})} \end{align} となります。これにもとづきESSを計算すると、*3
\begin{align} p^* = \min \left( \frac{VN}{C(N-2)}, 1 \right) \end{align} が得られます。つまり は(つまりタカ同士の喧嘩でコストを上回る資源が得られることは)、常にタカ派として振る舞うのがESSであるための十分条件ということになります。
これを個体ベースモデルで確認してみましょう。アルゴリズムは以下。まずは、集団サイズを決めて、初期の形質値をランダムに振ってやることから始まります。今回は、個体 の形質 p[i] を配列ではなくベクトルで準備してやりました。
- 個体で集団がきっちり埋まっているとする。
- 各 に対してメルセンヌ・ツイスタによって一様乱数 をひっぱってきて、これが を満たすなら、 の値は に更新される(ただし今回は と大きめに設定した)。ここで は、 を満たす、メルセンヌ・ツイスタによる一様乱数。変異後の値はもちろん0以上1以下になるように制限をする。
- の集団平均 を計算する。
- から、 番目の個体の利得 を計算し、これから適応度 を計算する。
- から、平均適応度 を計算してやる。
- 2個体がランダムに選ばれ、適応度の大きい個体が、小さい個体を排除する。
- 元のサイズ に戻る。これを1024世代繰り返す。
- パラメータは とした。よって予測される ESS は、 ということになる。
後記:ミスを発見。。修正しました。
結果が下。8回まわした結果をのせます。点線はESS予測値。一つ一つの色は、ラン。戦略平均の時間変化をトラックしています。
やはりシミュレーションの回数が少ないと、ばらつきが大きいですねー。そしてMoranプロセスを採用しているので、完全に世代交代するまでにかかる時間の期待値は、Wright-Fisher の 倍。100個体も準備しているので、2000世代まわしても、実質的にWright-Fisherで20世代まわした程度の結果ということになります。
しかしコードはMoranプロセスのほうがだいぶんラクですね。どこでラクするか。
ちゃんと収束してくれて何より。なお、適応度が最大の個体が、適応度最小の個体を排除する、というアルゴリズムを組んでも、同じ結果がえられます。*4
*1:子どもたちがゲームをプレイし、利得は子どもの生存率に寄与する 、と仮定しても、このモデルにおいては同一の結果が得られる。 場合には、無限集団極限 に相当する結果が得られる(後述)。ただし一般には、survival effect と fecundity effect とは、厳密に区別をせねばならない
*2:ここで、 とする流儀もある。この場合、 は のオッズであり、 である。Sigmund (2010)など。
*3:本当はこれは狭義ESSではなく、Nash均衡である。なぜなら、ESSはあくまでも十分小さい規模 での侵入を想定しているのだが、ここでは侵入規模は となっているからである。もちろん無限集団を仮定すれば、すみやかに狭義条件が得られ、その場合のESSは になることが確かめられる。これは、産仔数が非常に大きいという極限においては、子供たちがゲームをプレイするという仮定からも得られる結果である。産子数が有限の場合はさらなる計算が要求され、最終的によりタカ戦略にバイアスしたESSが得られる
*4:戦略値の分散も十分小さく保たれていること、すなわち進化的分岐は起こっていないことも、予備シミュレーションで示してあります。