前回のこの話の続き。
ようするに、このスクリプトの話。
https://github.com/thatsdone/junkbox/blob/master/python/evolution.py
あのあと断続的にいろいろいじっていて、致命的なバグをとったり、pep8 でいろいろ出るじゃねーかとワカモノからケチをつけられてみたり、animalのトラッキングをできるようにしてみたりとか、バッチモードを追加したりとかして遊んでいたのだが、進化のメカニズムそのもののところはオリジナルから手をつけずにいた。
まあ、まだまだ python らしくするために手を入れるところはたくさんあるのだが、いったんこんなグラフが書けたのではりつけておく。
全 animal について turn/move/eat/reproduce をかける作業を 1update として、
世界を 4000 回updateかけている。
この条件だと、animal数は150くらい、食べ物のplant数は50くらい、animal の平均寿命は 180-200 update くらいで落ち付いてくるようだ。
少なくともオリジナルの Lisp 版では種の分化が起きたりするらしく、これでも同じことが起きるはずなのだが、まだそこまでは手をつけていない。
もうちょっといじったら、進化のメカニズムの面でも、いろいろ遊んでみよう。
No comments:
Post a Comment