ハシビロコウが擬態の進化シミュレーションをする話
2023-04-06
azblob://2023/04/07/eyecatch/2023-04-07-shoebill-play-evolution-simulation-000.jpg

自己紹介

どうもはじめまして。2023年4月に入社しました。髙江洲 春敦(たかえす はると)と申します。髙江洲という名前で気づいた方もいるかもしれませんが沖縄出身です。沖縄風にはーるーとでも呼んで覚えてください。

ところで三重に来たのが3月の中旬ほどなのですが寒すぎませんか?10度を下回るなんて正気とは思えません。雪が降ったらどうなってしまうのか戦々恐々です。

ハシビロコウですよろしくお願いします

母曰くはーるーはハシビロコウだそうです。謎です。いつもぼーっとしてるからでしょうか?それ以降LINEのアイコンはハシビロコウの写真になりました。

まあハシビロコウはわりと好きなので今日からハシビロコウになります(?)。ハシビロコウとでも呼んで覚えてください。

卒業研究

せっかくなので高専で研究したことを話そうと思います。高専では「擬態の進化」について研究していました。皆さん擬態をご存知ですか?「にこにこ」「べったり」などの擬態語ではありません。生物が他の物に姿を似せる意味の擬態です。バラエティーとかでたまに葉っぱにそっくりな蛾とか木の枝にそっくりなナナフシとか見ると思います。それが擬態です。

なぜ彼らは擬態をするのか。ほとんどの場合は自衛のためです。彼らは自身の色や形によって天敵を騙し身を守っています。擬態できない個体は天敵に食われて死に、よりうまく擬態できたものが子孫を残していく。そうやって擬態は進化していきます。

擬態の進化については大体理解していただけたでしょうか?

ここまで生物の擬態について話してきたので「はーるーって情報系出身じゃないの?」と疑問に思った方もいることでしょう。安心してください。ちゃんと情報っぽいことをしています。この擬態の進化を調べるための手法として進化シミュレーションというものを使いました。簡単に説明すると計算機上で個体が世代を経るごとに環境に適応して最適化、つまり進化していくシミュレーションです。

この進化シミュレーションを実現するためには遺伝的アルゴリズムというものを実現する必要があるのですが、これが非常に難しい!遺伝的アルゴリズムというものを完璧に理解しないとプログラムに実装できないからです。特に遺伝子の設計は迷いまくりました。遺伝子の部分は軽く10回以上は改良しましたね笑

無事コードを書き終えた僕ですが、ある事件が起こりました。

処理が永遠に終わらない。無限実行編の始まりです。3日経過して進捗が10%だったのを見たとき流石に無理だと判断して中断しました。

理由は単純にプログラムに無駄な要素が多かったからです。皆さんも進化シミュレーションをやるときは実行に時間がかかるので、実行速度を意識して設計しましょう。あとpythonとかで作るとマジで終わらないのでCみたいな実行速度の速い言語を使うのがベストです。

まあ、いろいろ大変でしたが新しい技術を調べたり実装するのは楽しかったですし、苦労した分結果をグラフに出したときは感動もいっそうでした。皆さんもぜひ進化シミュレーションをやりましょう。

最後に

ハシビロコウは動かないことで知られていますが、実は飛びます。僕もFIXERのハシビロコウとして羽ばたいていきたいです。