セルオートマトンで生態系シミュレーション

 

子供の頃、「シートン動物記」を愛読していました。気高き愛のアニマルドラマ、とでも言いましょうか。彼らの生きる自然と、彼らが相互作用し作られる生態系に思いを馳せていました。

そんな僕も大きくなり、今では「なんちゃって生態系」を作れるようになりました。この記事では、お手軽な生態系モデルの作り方と、その生態系の挙動を紹介します。いつもその美味しさで我々を満たしてくれる動植物の命への尊敬を込めて作ったモデルですので、決して料理に関係が無い話題ではありません。たぶんね。

今回は、格子状のセルで区切った世界を作り、そこに簡単なルールを適用することで生態系を実装します。
セルは4つの状態を取ります。
(1)白=砂漠 
(2)緑=草
草は白い土地に5timestepで生えます。
(3)青=草食動物(シマウマ)
①周りのセルに草が4つ無ければすぐに死にます。②3匹以上の群れで草セルを囲んだ場合、草セルを食べて、そこのセルに子供を残します。
(4)赤=肉食動物(ライオン)
①5timestepで死にます。②3匹以上の群れで草食動物セルを囲んだ場合、草食動物セルを食べて、そこのセルに子供を残します。

b-af

では、以上のルールで、実際にシミュレーションを行ってみましょう。

step1:
白い土地を用意します。

step2:
草を生やします。
2015y07m07d_165001720

Step3:
草食動物(=シマウマ)を入れます。どんどん増えます。

2015y07m07d_165016955

Step4:
肉食動物(=ライオン)を入れます。以下は肉食動物が飽和し、生態系が定常になった状態。
グラフ右半分にそれぞれのピークを表す縦線を引きましたが、赤(ライオン)、青(シマウマ)の個体数のピークが交互に来ているのが分かると思います。

以上のシンプルなルールを反映することで、生態系(のようなもの)が出来ます。
2015y07m07d_165057054

このモデルが一体どの程度現実の生態系を表しているかの分析としては、過去の数理モデルによる研究結果による検証が考えられます。
捕食-被食関係にある2種の個体数の時系列変化の説明には、20世紀初頭に提唱された「ロトカ・ボルテラ方程式」が最も有名です。

r-v

ロトカ・ボルテラ方程式には、以下の4つのパラメータが使用されます。逆に言うと、この4つのパラメータによって、捕食-被食関係は近似的に説明できるということを表しています。
①草食動物の繁殖力 ②草食動物の生存力 ③肉食動物の繁殖力 ④肉食動物の生存力

今回作成したモデルも、ロトカ・ボルテラ方程式特有の振動が見られるので、数式にフィッティングすることで①~④を求めることができます。

以上より、今回の生態系がある状況を表しているものだとしましょう。では、この生態系モデルを用いて実験を行なってます。
定常状態において肉食動物を増やすと、草食動物が急激に減少します。それにより、増えたはずの肉食動物が(草食動物が少なくなったことにより)減少し、草食動物の数が元の水準まで戻ります。

2015y07m07d_165106244

不測の環境変化が起こっても、元に戻る。これは、生態系のロバスト性(外乱への強靭性)を示しています。

時間が出来たら、もう少し色々書き足します。
(1)季節を導入するとどうなるか
(2)耐えうる外乱の閾値は?
(3)肉食動物の捕食能力を下げた場合の定常状態の変化

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です