logo

ロトカ=ボルテラ競争モデル 📂動力学

ロトカ=ボルテラ競争モデル

概要

ロトカ・ヴォルテラの競争モデルは、二つの集団間の競争的排除の原理principle of Competitive Exclusionを説明するためのモデルであり、特に二つの集団が互いに抑制し合う状況を描写する。例えば、同じ牧草地を共有するウサギと羊の関係や、二つのライバル部族の殺し合いなどに適用できる。

モデル1

x1˙=r1x1K1x1β12x2K1x2˙=r2x2K2x2β21x1K2 \begin{align*} \dot{x_{1}} =& r_{1} x_{1} {{ K_{1} - x_{1} - \beta_{12} x_{2} } \over { K_{1} }} \\ \dot{x_{2}} =& r_{2} x_{2} {{ K_{2} - x_{2} - \beta_{21} x_{1} } \over { K_{2} }} \end{align*}

変数

  • x1(t)x_{1}(t): tt時点での集団x1x_{1}の個体数を表す。
  • x2(t)x_{2}(t): tt時点での集団x2x_{2}の個体数を表す。

パラメータ

  • rk>0r_{k}>0: xkx_{k}の固有増加率。
  • Kk>0K_{k}>0: xkx_{k}に対する環境収容力。
  • βij/Ki>0\beta_{ij} / K_{i} >0: xix_{i}に対する競争係数competition Coefficien

導出

N˙=rKN(KN) \dot{N} = {{ r } \over { K }} N ( K - N)

ロジスティック成長モデルから始めよう。まず、二つの集団xkx_{k}が捕食者がいない場合は増殖率rk>0r_{k}>0で成長し、環境収容力KkK_{k}によって成長が制限されていると仮定する。これは真に連立方程式ではないが、以下のように数式で示すことができる。

x1˙=r1K1x1(K1x1)x2˙=r2K2x2(K2x2) \begin{align*} \dot{x_{1}} =& {{ r_{1} } \over { K_{1} }} x_{1} \left( K_{1} - x_{1} \right) \\ \dot{x_{2}} =& {{ r_{2} } \over { K_{2} }} x_{2} \left( K_{2} - x_{2} \right) \end{align*}

ここに、相手集団が互いに与える害を項として追加しようとする。相手の成長を妨げる力は自分の集団の力に比例するべきなので、ある定数β>0\beta > 0に対して以下のように表すことができるだろう。

x1˙=r1K1x1(K1x1βx2)x2˙=r2K2x2(K2x2βx1) \begin{align*} \dot{x_{1}} =& {{ r_{1} } \over { K_{1} }} x_{1} \left( K_{1} - x_{1} - \beta x_{2} \right) \\ \dot{x_{2}} =& {{ r_{2} } \over { K_{2} }} x_{2} \left( K_{2} - x_{2} - \beta x_{1} \right) \end{align*}

これは、環境収容力が満たされていないにもかかわらず、相手集団からの抑制を受けて成長速度が遅くなることを意味する。ただし、二つの種が互いに影響を与える程度が同じでない場合があるので、β\betaを詳細に分けると、システムは次のように完成する。

x1˙=r1K1x1(K1x1β12x2)x2˙=r2K2x2(K2x2β21x1) \begin{align*} \dot{x_{1}} =& {{ r_{1} } \over { K_{1} }} x_{1} \left( K_{1} - x_{1} - \beta_{12} x_{2} \right) \\ \dot{x_{2}} =& {{ r_{2} } \over { K_{2} }} x_{2} \left( K_{2} - x_{2} - \beta_{21} x_{1} \right) \end{align*}

固定点

  • 行き詰まり (K1,0)(0,K2) \left( K_{1}, 0 \right) \\ \left( 0, K_{2} \right)

  • 膠着状態 β12β211\beta_{12}\beta_{21} \ne 1のとき (K1β12K21β12β21,K2β21K11β21β12) \left( { { K_{1} - \beta_{12} K_{2} } \over { 1 - \beta_{12} \beta_{21} } }, { { K_{2} - \beta_{21} K_{1} } \over { 1 - \beta_{21} \beta_{12} } } \right)

ロトカ・ヴォルテラの競争モデルでは、固定点には上記のように行き詰まりが生じるケースと膠着状態に陥るケースがある。

  • 行き詰まりとは、二つの集団間の競争で一方の集団がもう一方を完全に駆逐し、ロジスティック成長モデルに従うことを意味する。
  • 膠着状態に陥るとは、二つの集団が完全に力を合わせ、バランスを保ちながら共存することを意味する。数式で面白いのは、モデリング段階で意図されたパラメータ設定が固定点の座標に透明に影響を与えるということである。
  • ただし、これらの表現は本ポストで説明するために使用されただけで、広く使われる表現ではないことに注意。

存在性

0=r1K1x1(K1x1β12x2)0=r2K2x2(K2x2β21x1) \begin{align*} 0 =& {{ r_{1} } \over { K_{1} }} x_{1} \left( K_{1} - x_{1} - \beta_{12} x_{2} \right) \\ 0 =& {{ r_{2} } \over { K_{2} }} x_{2} \left( K_{2} - x_{2} - \beta_{21} x_{1} \right) \end{align*}

満足する固定点を探そう。

行き詰まり

一般性を失わずに、x10,x2=0x_{1} \ne 0, x_{2} = 0を仮定すると

0=r1K1x1(K1x1)0=0 \begin{align*} 0 =& {{ r_{1} } \over { K_{1} }} x_{1} \left( K_{1} - x_{1} \right) \\ 0 =& 0 \end{align*}

それゆえ、簡単に固定点(K1,0)\left( K_{1}, 0 \right)を得る。同様の方法で(0,K2)\left( 0, K_{2} \right)を見つけることができる。

膠着状態

今、x10,x20x_{1} \ne 0, x_{2} \ne 0を仮定してみると、一つ目の式からx1x_{1}を、二つ目の式からx2x_{2}を取り、そして掛けられた定数項を取り除いて以下のように簡素化する。

0=K1x1β12x20=K2x2β21x1 \begin{align*} 0 =& K_{1} - x_{1} - \beta_{12} x_{2} \\ 0 =& K_{2} - x_{2} - \beta_{21} x_{1} \end{align*}

この連立方程式の解を見つけることは、二つの直線の交点を見つけることに等しい。

右辺の変数を左辺に移動し、行列で示すと

[1β12β211][x1x2]=[K1K2] \begin{bmatrix} 1 & \beta_{12} \\ \beta_{21} & 1 \end{bmatrix} \begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix} = \begin{bmatrix} K_{1} \\ K_{2} \end{bmatrix}

β12β211\beta_{12}\beta_{21} \ne 1ならば逆行列が存在し、

[1β12β211]1=11β12β21[1β12β211] \begin{bmatrix} 1 & \beta_{12} \\ \beta_{21} & 1 \end{bmatrix}^{-1} = { { 1 } \over { 1 - \beta_{12} \beta_{21} } } \begin{bmatrix} 1 & - \beta_{12} \\ - \beta_{21} & 1 \end{bmatrix}

それゆえ、

[x1x2]=11β12β21[1β12β211][K1K2] \begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix} = { { 1 } \over { 1 - \beta_{12} \beta_{21} } } \begin{bmatrix} 1 & - \beta_{12} \\ - \beta_{21} & 1 \end{bmatrix} \begin{bmatrix} K_{1} \\ K_{2} \end{bmatrix}

安定性

x1[r1x1K1x1β12x2K1]=r1K1(K12x1β12x2)x2[r1x1K1x1β12x2K1]=r1K1β12x1x1[r2x2K2x2β21x1K2]=r2K2β21x2x2[r2x2K2x2β21x1K2]=r2K2(K22x2β21x1) { { \partial } \over { \partial x_{1} } } \left[ r_{1} x_{1} {{ K_{1} - x_{1} - \beta_{12} x_{2} } \over { K_{1} }} \right] = { { r_{1} } \over { K_{1} } } \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} \right) \\ { { \partial } \over { \partial x_{2} } } \left[ r_{1} x_{1} {{ K_{1} - x_{1} - \beta_{12} x_{2} } \over { K_{1} }} \right] = - { { r_{1} } \over { K_{1} } } \beta_{12} x_{1} \\ { { \partial } \over { \partial x_{1} } } \left[ r_{2} x_{2} {{ K_{2} - x_{2} - \beta_{21} x_{1} } \over { K_{2} }} \right] = - { { r_{2} } \over { K_{2} } } \beta_{21} x_{2} \\ { { \partial } \over { \partial x_{2} } } \left[ r_{2} x_{2} {{ K_{2} - x_{2} - \beta_{21} x_{1} } \over { K_{2} }} \right] = { { r_{2} } \over { K_{2} } } \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} \right)

よって、ヤコビアンは次のようになる。

J=[r1K1(K12x1β12x2)r1K1β12x1r2K2β21x2r2K2(K22x2β21x1)] J = \begin{bmatrix} { { r_{1} } \over { K_{1} } } \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} \right) & - { { r_{1} } \over { K_{1} } } \beta_{12} x_{1} \\ - { { r_{2} } \over { K_{2} } } \beta_{21} x_{2} & { { r_{2} } \over { K_{2} } } \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} \right) \end{bmatrix}

行き詰まり

一般性を失わずに、(K1,0)\left( K_{1} , 0 \right)の場合についてだけ見てみよう。

[r1K1(K12x1β12x2)r1K1β12x1r2K2β21x2r2K2(K22x2β21x1)](K1,0)=[r1β12r10β21r2] \begin{bmatrix} { { r_{1} } \over { K_{1} } } \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} \right) & - { { r_{1} } \over { K_{1} } } \beta_{12} x_{1} \\ - { { r_{2} } \over { K_{2} } } \beta_{21} x_{2} & { { r_{2} } \over { K_{2} } } \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} \right) \end{bmatrix}_{\left( K_{1} , 0 \right)} = \begin{bmatrix} - r_{1} & - \beta_{12} r_{1} \\ 0 & - \beta_{21} r_{2} \end{bmatrix}

その固有値は

det(JλI)=(r1λ)(β21r2λ)+r1β12=λ2+(r1+β21r2)+r1r2β21+r1β12=0 \begin{align*} \det \left( J - \lambda I \right) &= \left( - r_{1} - \lambda \right) \left( - \beta_{21} r_{2} - \lambda \right) + r_{1} \beta_{12} \\ =& \lambda^{2} + \left( r_{1} + \beta_{21} r_{2} \right) + r_{1} r_{2} \beta_{21} + r_{1} \beta_{12} \\ =& 0 \end{align*}

の解であり、r1r_{1}r2r_{2}β12\beta_{12}β21\beta_{21}が全て正であるため、根があっても複素数が生じたり実根であっても(r1+β21r2)- \left( r_{1} + \beta_{21} r_{2} \right)を補うほど大きくなることはできない。したがって、実部は負でなければならず、固定点(K1,0)\left( K_{1} , 0 \right)(0,K2)\left( 0, K_{2} \right)は安定である。

膠着状態

ここで、(x1,x2)=(K1β12K21β12β21,K2β21K11β21β12)\left( x_{1}, x_{2} \right) = \left( { { K_{1} - \beta_{12} K_{2} } \over { 1 - \beta_{12} \beta_{21} } }, { { K_{2} - \beta_{21} K_{1} } \over { 1 - \beta_{21} \beta_{12} } } \right)ならば

K12x1β12x2=K1β12β21K12K1+2β12K2β12K2+β12β21K11β12β21=K12K1+2β12K2β12K21β12β21=K1+β12K21β12β21 \begin{align*} K_{1} - 2 x_{1} - \beta_{12} x_{2} =& { { K_{1} - \beta_{12} \beta_{21} K_{1} - 2 K_{1} + 2 \beta_{12} K_{2} - \beta_{12} K_{2} + \beta_{12} \beta_{21} K_{1} } \over { 1 - \beta_{12} \beta_{21} } } \\ =& { { K_{1} - 2 K_{1} + 2 \beta_{12} K_{2} - \beta_{12} K_{2} } \over { 1 - \beta_{12} \beta_{21} } } \\ =& { { - K_{1} + \beta_{12} K_{2} } \over { 1 - \beta_{12} \beta_{21} } } \end{align*}

同様に、

K22x1β21x1=K2+β21K11β12β21 \begin{align*} K_{2} - 2 x_{1} - \beta_{21} x_{1} = { { - K_{2} + \beta_{21} K_{1} } \over { 1 - \beta_{12} \beta_{21} } } \end{align*}

ヤコビアンの固有値は次を満たす解になるだろう。

0=K1K2r1r2det[J(x1,x2)λI]=K1K2r1r2[(r1K1(K12x1β12x2)λ)(r2K2(K22x2β21x1)λ)r1r2K1K2β12β21x1x2]=K1K2r1r2[r1K1(K12x1β12x2K1r1λ)r2K2(K22x2β21x1K2r2λ)r1r2K1K2β12β21x1x2]=(K12x1β12x2K1r1λ)(K22x2β21x1K2r2λ)β12β21x1x2=K1K2r1r2λ2[K2r2(K12x1β12x2)+K1r1(K22x2β21x1)]λ+(K12x1β12x2)(K22x2β21x1)β12β21x1x2=K1K2r1r2λ2[K2r2K1+β12K21β12β21+K1r1K2+β21K11β12β21]λ+(K12x1β12x2)(K22x2β21x1)β12β21x1x2=K1K2r1r2λ21r1r2(1β12β21)[r1K1K2+r1β12K22r2K2K1+r2β21K12]λ+(K12x1β12x2)(K22x2β21x1)β12β21x1x2=K1K2r1r2λ2+1r1r2(1β12β21)[r1K2(K1β12K2)+r2K1(K2β21K1)]λ+K1+β12K21β12β21K2+β21K11β12β21β12β21x1x2 \begin{align*} 0 =& { { K_{1} K_{2} } \over { r_{1} r_{2} } } \det \left[ J_{\left( x_{1} , x_{2} \right)} - \lambda I \right] \\ =& { { K_{1} K_{2} } \over { r_{1} r_{2} } } \left[ \left( { { r_{1} } \over { K_{1} } } \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} \right) - \lambda \right) \left( { { r_{2} } \over { K_{2} } } \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} \right) - \lambda \right) - { { r_{1} r_{2} } \over { K_{1} K_{2} } } \beta_{12} \beta_{21} x_{1} x_{2} \right] \\ =& { { K_{1} K_{2} } \over { r_{1} r_{2} } } \left[ { { r_{1} } \over { K_{1} } } \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} - { { K_{1} } \over { r_{1} } } \lambda \right) { { r_{2} } \over { K_{2} } } \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} - { { K_{2} } \over { r_{2} } } \lambda \right) - { { r_{1} r_{2} } \over { K_{1} K_{2} } } \beta_{12} \beta_{21} x_{1} x_{2} \right] \\ =& \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} - { { K_{1} } \over { r_{1} } } \lambda \right) \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} - { { K_{2} } \over { r_{2} } } \lambda \right) - \beta_{12} \beta_{21} x_{1} x_{2} \\ =& { { K_{1} K_{2} } \over { r_{1} r_{2} } } \lambda^{2} - \left[ { { K_{2} } \over { r_{2} } } \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} \right) + { { K_{1} } \over { r_{1} } } \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} \right) \right] \lambda \\ & + \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} \right) \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} \right) - \beta_{12} \beta_{21} x_{1} x_{2} \\ =& { { K_{1} K_{2} } \over { r_{1} r_{2} } } \lambda^{2} - \left[ { { K_{2} } \over { r_{2} } } { { - K_{1} + \beta_{12} K_{2} } \over { 1 - \beta_{12} \beta_{21} } } + { { K_{1} } \over { r_{1} } } { { - K_{2} + \beta_{21} K_{1} } \over { 1 - \beta_{12} \beta_{21} } } \right] \lambda \\ & + \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} \right) \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} \right) - \beta_{12} \beta_{21} x_{1} x_{2} \\ =& { { K_{1} K_{2} } \over { r_{1} r_{2} } } \lambda^{2} - { { 1 } \over { r_{1} r_{2} \left( 1 - \beta_{12} \beta_{21} \right) } } \left[ - r_{1} K_{1} K_{2} + r_{1} \beta_{12} K_{2}^{2} - r_{2} K_{2} K_{1} + r_{2} \beta_{21} K_{1}^{2} \right] \lambda \\ & + \left( K_{1} - 2 x_{1} - \beta_{12} x_{2} \right) \left( K_{2} - 2 x_{2} - \beta_{21} x_{1} \right) - \beta_{12} \beta_{21} x_{1} x_{2} \\ =& { { K_{1} K_{2} } \over { r_{1} r_{2} } } \lambda^{2} + { { 1 } \over { r_{1} r_{2} \left( 1 - \beta_{12} \beta_{21} \right) } } \left[ r_{1} K_{2} \left( K_{1} - \beta_{12} K_{2} \right) + r_{2} K_{1} \left( K_{2} - \beta_{21} K_{1} \right) \right] \lambda \\ & + { { - K_{1} + \beta_{12} K_{2} } \over { 1 - \beta_{12} \beta_{21} } } { { - K_{2} + \beta_{21} K_{1} } \over { 1 - \beta_{12} \beta_{21} } } - \beta_{12} \beta_{21} x_{1} x_{2} \end{align*}

数式から見て、固定点の安定性に最も影響を与えるパラメータはK1K_{1}K2K_{2}β12\beta_{12}β21\beta_{21}であり、KiK_{i}βijKj\beta_{ij} K_{j}より大きいか小さいかによって決まる。極端な例としてβij\beta_{ij}が全て00であり、競争が全く発生しない場合、相手集団がどうであれ、単に個別にロジスティック成長をして安定した固定点に収束するだろう。しかし、この競争があまりにも激しい場合、正確な固定点からわずかに逸脱すると、少しでも有利な集団が相手を完全に倒そうとする。「不安定」であるという数学的な表現がピッタリ合う。しかし、パラメータに応じて固有値がどのように計算されるか分からないため、この固定点は安定しているかもしれないし、不安定かもしれないし、鞍点かもしれない。

x1˙=x1(3x12x2)x2˙=x2(2x2x1) \begin{align*} \dot{x_{1}} =& x_{1} \left( 3 - x_{1} - 2 x_{2} \right) \\ \dot{x_{2}} =& x_{2} \left( 2 - x_{2} - x_{1} \right) \end{align*}

上記のシステムは、x1x_{1}をウサギとし、x2x_{2}を羊としてロトカ・ヴォルテラ競争モデルを提案したものである。二つの種が直接互いを傷つけるわけではないが、同じ牧草地を共有し、食べ物の競争をすると仮定する。羊はウサギよりも大きいため、環境収容力の面ではウサギより少なく、食べる量が多いため、ウサギが羊に与える悪影響よりも、羊がウサギに与える悪影響の方が多い。このシステムの非自明な固定解は以下の通りである2

(3,0)(0,2)(1,1) (3,0) \\ (0,2) \\ (1,1)

特に(1,1)(1,1)の場合はJ(1,1)=[1211]J_{(1,1)}=\begin{bmatrix} -1 & -2 \\ -1 & -1 \end{bmatrix}となり、固有値は1±2-1 \pm \sqrt{2}であり、正と負を一つずつ含んでいるため、鞍点になる。

視覚的理解

ベクターフィールドのGIF

上のGIFは、例のベクターフィールドを示している。どの初期値から始めても、固定点に向かって軌跡を描くことができるが、その中で(1,1)(1,1)は鞍点で


  1. Allen. (2006). An Introduction to Mathematical Biology: p248. ↩︎

  2. Strogatz. (2015). Nonlinear Dynamics And Chaos: With Applications To Physics, Biology, Chemistry, And Engineering(2nd Edition): p157. ↩︎