書籍サポート / Support

複雑系のシミュレーション

虫型探索システム:BUGSの解説

これは虫の捕食行動の進化をシミュレートするプログラムです。システムの概観は以下のとおりです。 BUGS
虫は緑色もしくは黄色(十分に育ったもの)で表されています。
虫は空間内にランダムに発生するバクテリア(赤の点)を食べて生き延びます。
バクテリアを食べると40のエネルギーを得ることが出来ます。
虫は1歩進む毎に1のエネルギーを失い,持っているエネルギーが0になると死んでしまいます。

長く生き延びるためには,移動の方法を最適化する必要があります。
虫の動きは遺伝子コードで決定されます。
遺伝子コードは{前、右前、右後、後、左後、左前}で表現された6つの整数値から成ります。
整数値が大きいほど高い確率でその方向に動きます。例えば、{1,9,1,1,1,1}であるような虫は しばしば右前を取るようになり,その結果この虫は時計回りにぐるぐる動くようになります。

800歩動くと虫は成熟し,エネルギーが1000を越えると有性生殖を行います。
これは,近くに同じく成熟した強い虫がいた場合に,遺伝子コードを交叉,突然変異して子供の虫を2匹生む行動です。この時親のエネルギーは元の半分になり,子のエネルギーは親2匹の平均値の半分になります。

さらに1000歩動き,エネルギーが1300を越えると無性生殖を行います。
無性生殖により親の遺伝子コードを突然変異して子が2匹生まれ,親は死にます。
子のエネルギーは親のエネルギーの半分です。

右下にエデンの園という,バクテリアの発生しやすい領域があります。
この近くではその場にとどまり続ける動きに進化します。

虫の年齢(何歩動いたか)、エネルギーの分布がそれぞれ棒グラフに表されています。
横軸が年齢とエネルギー,縦軸が虫の数です。

虫型探索システム:BUGSの操作方法

シミュレーションを開始します.

シミュレーションを一時停止します.

シミュレーションを一時刻進めます.

このシミュレーションでは使いません.

シミュレーションを停止します.

  1. worldXSize: 空間の広さ(横軸)
  2. worldYSize: 空間の広さ(縦軸)
  3. seedProb: 初期状態のバクテリアの発生確率
  4. bugDensity: 初期状態の虫の発生確率
  5. Eden: エデンの園 1:有り 0:無し