全2115文字
PR

コンピューターの得意分野の1つがシミュレーションだ。自分でプログラムを書けば、架空生物の生命すらシミュレートできる。本特集ではプログラミング言語「Python」を使って人工生命を作る方法を解説する。

【行動と栄養摂取】

 前回作ったのは、ただ「寿命」が尽きるのを持つだけの人工生命でした。updateされるたびに歳を取っていき、あらかじめ決められた「寿命」を迎えると死んでいきます。

 これに「行動」する機能を付け足して、RandomWalkerクラスを作ります。このクラスでは、updateのたびに自分自身を前に動かします。前に動くとともに、少し向きを変えます。また、自分の位置が±1の範囲を超えないように制御します。

 さらに、「食べ物」を摂取するようにします。摂取すると、その分、寿命が延びます。ただし、「食べ物」を認識してそれを目指すわけではなく、単にでたらめに歩き回り、たまたま食事に成功すると生命力が回復するというものです。

 「食べ物」を表すFoodクラスは、Entityクラスの拡張として作ります。このクラスは単に緑色の菱形を表示するだけで、移動することはありません。

 メインになる部分では、100個のRandomWalkerをupdateしつつ、Foodにぶつかったら、lifeを5増やす処理を入れています。つまり、RandomWalkerは、Foodを摂食し、寿命を伸ばします。Foodは常に50個存在するように制御されます。

 このシミュレーションは、RandomWalkerの数(摂食できなければ死んでいく)、Foodの数(常に一定数に保たれる)、RandomWakerがFoodを摂食した際のlifeアップ、RandomWalkerの動き方、RandomWalkerの寿命、といったパラメータによって変化します。

 そのコードがリスト7です。実行結果は図3です。

リスト7●【行動と栄養摂取】のコード
リスト7●【行動と栄養摂取】のコード
[画像のクリックで拡大表示]
図3●リスト7の実行結果
図3●リスト7の実行結果
[画像のクリックで拡大表示]