これは虫の捕食行動の進化をシミュレートするプログラムです。システムの概観は以下のとおりです。
虫は緑色もしくは黄色(十分に育ったもの)で表されています。
虫は空間内にランダムに発生するバクテリア(赤の点)を食べて生き延びます。
バクテリアを食べると40のエネルギーを得ることが出来ます。
虫は1歩進む毎に1のエネルギーを失い,持っているエネルギーが0になると死んでしまいます。
長く生き延びるためには,移動の方法を最適化する必要があります。
虫の動きは遺伝子コードで決定されます。
遺伝子コードは{前、右前、右後、後、左後、左前}で表現された6つの整数値から成ります。
整数値が大きいほど高い確率でその方向に動きます。例えば、{1,9,1,1,1,1}であるような虫は
しばしば右前を取るようになり,その結果この虫は時計回りにぐるぐる動くようになります。
800歩動くと虫は成熟し,エネルギーが1000を越えると有性生殖を行います。
これは,近くに同じく成熟した強い虫がいた場合に,遺伝子コードを交叉,突然変異して子供の虫を2匹生む行動です。この時親のエネルギーは元の半分になり,子のエネルギーは親2匹の平均値の半分になります。
さらに1000歩動き,エネルギーが1300を越えると無性生殖を行います。
無性生殖により親の遺伝子コードを突然変異して子が2匹生まれ,親は死にます。
子のエネルギーは親のエネルギーの半分です。
右下にエデンの園という,バクテリアの発生しやすい領域があります。
この近くではその場にとどまり続ける動きに進化します。
虫の年齢(何歩動いたか)、エネルギーの分布がそれぞれ棒グラフに表されています。
横軸が年齢とエネルギー,縦軸が虫の数です。
シミュレーションを開始します.
シミュレーションを一時停止します.
シミュレーションを一時刻進めます.
このシミュレーションでは使いません.
シミュレーションを停止します.