気が付いたら9月になっていました。数学の記事を出すのも4ヶ月ぶりです。
本記事ではこのツイートに端を発する一連の小話を書き残しておきます。
ロトカ・ボルテラ方程式でドラメシヤ、ドロンチ、ドラパルトの個体数の推移を計算してみたい
— いろはす/芭蕉 (@Irohasu1230) 2020年6月6日
ロトカ・ボルテラ方程式なるお堅い数学用語はさておき、まずはドラメシヤ、ドロンチ、ドラパルトについて。ご存知の方もいるでしょうが、この3つのカタカナ言葉はいずれもポケモンの名前です。それぞれこのようなポケモンです。
ポケモン、それは進化して強くなる不思議な生き物。
ドラメシヤ、ドロンチ、ドラパルトになるにつれて徐々に身体が大きくなっていることから察せられる通り、この3種の間にはドラメシヤがドロンチに、ドロンチがドラパルトに、それぞれ進化するという関係があります。
ドロンチの頭の上にドラメシヤがちょこんと乗っていたり、ドラパルトの頭にドラメシヤが2匹格納されていたりするのがなんとも可愛らしい。
(こんな可愛い見た目をして対戦では凶悪な性能をしてるところがまた推せる)
ドロンチもドラパルトも常日頃からドラメシヤを抱えて生活していますが、そのドラメシヤは一体どこから拾ってきたのでしょうか。
おまけに、1匹のドラメシヤが一人前のドラパルトになるためには余計に2~3匹別のドラメシヤが必要という図式も不思議です。
ドラメシヤが減った場合には、ドラパルトに成長するのも難しくなるのでしょうか。
逆にドラパルトが増え過ぎた時にはどうなるのでしょうか。
そこで、ドラメシヤ、ドロンチ、ドラパルトついて、これらの変化が起こった場合に個体数がどうなるか、数理モデルを組んでシミュレーションしてみることにしました。ある時刻 におけるドラメシヤの個体数を 、ドロンチの個体数を 、ドラパルトの個体数を とおきます。時間の経過に従って 、 、 は連続的に変化していくことでしょう。
それでは、変化を予測していくために、 、 、 にまつわるパラメータを考察していきます。すなわち時刻がほんの僅かに進んだときに 、 、 がどう変化するかを記述することを目指します。
一瞬の間にドラメシヤ()、ドロンチ()、ドラパルト()たちの身に起こり得る事象には何が考えられるでしょうか。例えば以下が考えられます。
- ドラメシヤがドロンチに進化する。
- ドロンチがドラパルトに進化する。
- ドラメシヤが卵から孵る。(ドラメシヤに限らずポケモンは皆卵生らしいです)
- 死ぬ。(ドラメシヤたちはゴーストタイプなので既に死んでます。成仏すると捉えましょうか)
ざっとこんなものでしょうか。それではこれらの事象を、その一瞬の間にそれが起こる確率として数理モデルに反映していきます。
例えば、ドラメシヤがドロンチに進化する確率を とおきます。
(一瞬のうちに 体のドラメシヤがドロンチに進化するイメージ)。
同様に、ドロンチがドラパルトに進化する確率を とおきます。
ドラメシヤが卵から孵る確率は とおきましょうか。
のドラメシヤが新たにこの世に生を享けるわけですね。
成仏云々についてはややこしくなりそうなので割愛します。ポケモンの死については描写がはっきりしていないことも多いので。
さて、こうして設定したパラメータを基に数理モデルを組んでいきましょう。
ドラメシヤに関しては、ある一瞬のうちに 体生まれ、 体がドロンチに進化するので、以下のような方程式になります。一瞬の間に変化する個体数は、一瞬の間に生まれたり進化したりする数の総和と等しく、一瞬の間に変化する個体数を で表すと、
という1行の方程式として表現できます。
さて、ドロンチに関しては、 体ドラメシヤから進化してきて、 体がドラパルトに進化するので、以下のような方程式になります。
ドラパルトは、 体がドロンチから進化するのでこのようになります。
というわけで、以下のような数理モデルを組むことができました。
このような図式ですね。
何らかの数の時間経過に伴う変化をこのような数式で表現して調べるというのは、現実世界の生物に対しても行われており、冒頭に挙げた「ロトカ・ボルテラ方程式」もこれと似た数式として表現できます。新型コロナウイルスの感染者数の推移もこのような数式で予測されているそうで、「8割おじさん」を筆頭とする数々の研究者が数学の立場から未曾有の問題に立ち向かってきたのでした。
そういえば重大なことを忘れていました。ドロンチは1匹のドラメシヤを頭に載せて生活していますが、ドラパルトに進化した途端に2匹のドラメシヤを連れて生活するようになります。進化する際にどこからともなくドラメシヤが殖えるわけです。これを数理モデルに反映させ忘れていました。
ドラメシヤからドロンチへの進化にせよ、ドロンチからドラパルトへの進化にせよ、1回の進化につき1匹のドラメシヤが増えているのは確かです。ということは、ドラメシヤに関する方程式に、ドラメシヤからドロンチへの進化数( )とドロンチからドラパルトへの進化数( )を加えると良さそうですね。
よって、このような数理モデルになりました。これでひとまず完成としましょうか。
図式も修正しました。
それでは、この数理モデルを用いて、ドラメシヤたちの個体数の変化を実際に調べてみることにしましょう。そのシミュレータを作成しました。ここにパラメータを適宜入力すると、先ほどの数理モデルに従って直ちに計算が行われ、結果が表示されます。
初期状態はドラメシヤが1体、ドロンチ、ドラパルトは0体であるとしましょう。
試しに 、 、 と設定すると、以下のように表示されます。ドラメシヤ(Dreepy: )、ドロンチ(Drakloak: )、ドラパルト(Dragapult: )の個体数はそれぞれ次のようになりました。
ドラメシヤが微妙に増えてますね。無限に時間が経過していくとドラメシヤが無限に増えていくと思われます。世界がドラメシヤで溢れかえる遠い未来には、ドロンチ、ドラパルトも相応に増えているでしょうね。そういえばドラメシヤの特性は”すり抜け”でした。見えてないだけでゲーム世界には既に無限のドラメシヤが棲息しているのかも……。
一方、 、 、とおくと、以下のようになります。ドラメシヤ、ドラパルトをおいてドロンチが1万4千体にまで増殖しています。ドラメシヤの出生に関係するパラメータ を大きくしたからこそでしょうね。
シミュレーションに使用したプログラムについては,以下の記事で解説を加えています。よろしければそちらもご覧ください。
さて、数値計算を色々試してみましたが、それだけで話が済むなら数学もそこまで発展してこなかったことでしょう。(きっと)
いずれにせよドラメシヤたちの個体数は無限に増えていくっぽいことが見えてきました。そこで、数値計算以外の手法でこの数理モデルを調べ、無限に増えていくことを証明してみたいと思います。ここからはかなりガッツリ数学の話になります。興味がある方は下記リンク先のPDFをご覧ください。
1ページ目だけ画像にして置いておきますね。
とまぁ、ドラパルトというポケモンから着想を得て数理モデルを作っては、適当に遊んでみました。「新型コロナの感染者数のシミュレーションのような最先端の理論をめっちゃ簡単にして考えるとこういう遊びができるもんなんだなぁ」と、思い付いた当時は感動したものでした。
大学で勉強する数学の発想をゲームとかの日常の娯楽に見出す面白さに気づかせてくれたという意味で、僕にとっては印象深いモデルです。こういう気軽な遊びの視点を高校教育の探究的な学びの題材に持ち込めないだろうか、という意気込みで先日の教員採用試験の面接に挑んできたものでした。
さて、すっかり長くなってしまいました。ご質問やコメント等お待ちしております。
お読みくださり、ありがとうございました。