スクリーンショット_2019-02-26_19

人工生命ヘビライフの改良

色々変更してみたが、それほど面白くなることはなかった。が、少しは成果があったのでそれを紹介。ヘビライフが何かは下記の記事を見ていただきたい。

寿命を追加

生まれてから数ターン後に死亡するようにしてみた。そうすると、数体の集団で同じ場所でぐるぐる廻る戦略を取る(というか、たまたまそういう場所に居る?)遺伝子が生き残りやすくなった(動画)。

これは離れた場所に移動するより寿命で死んだ仲間を食べて子を生むことを繰り返すことで、寿命を克服しているからだと思われる。また、生まれた子は稀に冒険の旅に出て、別の似たような空間で子孫を作り同じような行動を取ることもある。

このパターンになると、最終的にはいくつかのテリトリーでぐるぐる回るように安定する。

個体が小さくなる

寿命に加え、脳が個体の長さを変更するように働くように実装してみた。すると長さの短い個体が繁栄するようになった(動画)。加えて、短くならず維持するか長くしかならないように変更してみても、長くなることはなかった。

理由は色々あると思うが、一番は寿命に対してとても強くなるからだと思われる。長さが短いと餌を食べて子を生むまでの時間が短縮できる。寿命が来る前に分裂することができるだけで増殖するからだ。

しかしこの戦略には欠点があるようだ。最終的に小さな個体だらけになったあと絶滅してしまう。理由はあまり思い当たるものがなかったのだが、餌がバラバラに散らばってしまい効率よく餌を見つけることができなくなってしまうからかもしれない。長い個体が死亡すれば餌は一本の長い餌になるのでその上をなぞるように通ると効率よく食事ができるからだ。

餌の位置も感知するようにした

ニューラルネットワークの入力の数を増やし、餌が頭の前・左右にあるかどうかも入力するようにした。そうすると、餌が見つかったときに曲がるような個体が稀に生まれるようになった。しかし、そのような個体は繁栄しなかった。

理由で一番考えられるものは、協調性の無さかもしれない。餌に貪欲な個体は他の個体を邪魔したり餌につられて危険な場所に移動し、不必要な行動を取って寿命を迎えたり他の個体にぶつかってしまうからではないだろうか。餌の位置を無視してでも「わかりやすい安定した動き」を保つ個体のほうが優性のようだ。

体内時計を脳に入力するようにした

体内時計という表現が合うかはわからないが、脳に対して自分の年齢(生きたターン数)を加工して入力するようにしてみた。すると変わった動きを取る個体が生成されるようになった(動画)。

しかし、これも上手く繁栄することはなかった。理由は色々あると思うが、複雑な動きは子を生んだ瞬間に子が親に衝突して死亡しやすいことと、餌にたどり着くことがほとんど無いからだ。寿命の有無に限らず、これは子孫を残すことがなかった。

最後に

ということで、最後は色々な要素を入れたヘビライフの動画を用意した。最後まで何も楽しい変化はないが、どういったシミュレータなのかはわかると思うので、ご興味あれば見ていただければ幸いである。


応援してくださると嬉しいです。よろしくお願いいたします!