【Evolving Ecosystem with Genetic Algorithm】

 

 

【製作期間】

2016年 11月 〜 2017年 2月

【開発環境】

Processing

【内容】
 Daniel Shiffman氏の著書, "Nature of Code"にインスパイアされてこの作品を制作した.
この作品には,Craig Reynolds氏が発表した群れのアルゴリズムと,ダーウィンの進化論にヒントを得た遺伝的アルゴリズムが実装されている.
 この生態系には, 蝶,鳥,竜,魚の4種類の生物が存在するが,魚はこの生態系には関与していない.蝶,鳥,竜の3種類の生物が,以下のルールに従って動いている.

【ルール】
1. すべての生物は,自動的に減り続けるライフポイントを持っている.
2. ライフポイントが0になってしまうと,その生物は死ぬ.
3. 生物が餌を食べると,その生物はライフポイントを回復する.
4. 蝶は,鳥と竜から逃げ,花のみを食べる.
5. 鳥は,竜からは逃げて,花と蝶を食べる.
6. 竜は,蝶と鳥を食べる.
7. 蝶と鳥には,性別の概念が存在する.(蝶 : 白と青 / 鳥 : 黄と橙
8. 性別の異なる蝶や鳥が,一定の距離まで接近すると,遺伝的アルゴリズムに従い,生殖・進化を行う.


 生殖を繰り返すと,結果として生存能力の高い遺伝子が次世代へと継承され,「進化」ていく.

 また,この作品にはキー入力によるインタラクティブ要素が含まれている.
ユーザーが,b, c, dキーを押すと,それぞれ蝶,鳥,竜が追加されるようになっている.

【遺伝的アルゴリズム】

 各生物に対して,独自の適応度関数に従い,環境にどれほど適応しているかを常に計算している.性別の違う異なる蝶や鳥が一定距離まで接近すると,適応度が高い個体から2体選択し(厳密には,適応度が高い個体が選択される確率が高い.),その2体のDNAを受け継いで,新しい子が誕生する.

 この一連の操作を何世代も繰り返すと,結果として環境に対して適応度が高い個体が増え,「進化」していく.

 

【考察】
 今回は,サイズの小さい生物がより速く移動できるようにプログラムした.したがって,小さい生物の方が,竜から逃げる能力に優れていることになる.この動画の最初と最後を比較するとわかるように,大きい生物は生存競争から脱落している.最後のシーンでは,小さい生物だけが生存競争に勝っている.以上のことから,生き残る能力が高い,つまり小さい生物へと「進化」を遂げていることがわかる.

【Tumblr】
tmblr.co/ZGA06f2ICEJP7

【画像】
Flickr : flickr.com/photos/143844912@N04/albums/72157679997667116

 

 

 

 

 

 

Share on Facebook
Share on Twitter
Please reload

Latest Posts

【Interactive Evolving Ecosystem】

1/4
Please reload

© 2023 by BLAKE OWEN.

 Proudly created with Wix.com

This site was designed with the
.com
website builder. Create your website today.
Start Now