魚の鬼ごっこ: 魚の群れ行動(群知能)発生 捕食者/被捕食者あり 〜JAVA プログラム
魚、鳥、動物、 自然界では、色々生物が群をつくります。
なぜ、この様に群れて暮らす生物が多いのでしょうか? また、これらの群を統率する方法はどの様にして行っているのでしょうか?
これらの疑問に答える一つの回答があります。
1.集団を統率するリーダーは存在しない。
2.集団を、構成する個体は、周りを見て、自らの対処のしかたを決定しているだけである。
3.集団全体としての動作は、上記2により勝手に生じる。(創発という)
多数の個体が群として行動するシミュレーションを、最初に、CGであらわしたのは、クレイグ・レイノルズの 鳥の行動シミュレーション:BOID
(1987) が最初です。
BOIDでは、 個体の行動パターンを下記の3つの規則をアルゴリズム化して、プログラムしてあります。
規則:1 個々の鳥は、群の仲間との距離をある一定の大きさに維持することにより、ぶつかるのを避ける。
規則:2 個々の鳥は、周りの鳥とスピードと方向を合わせる。
規則:3 個々の鳥は、自分の周りの鳥のグループの中心に向かおうとする。
本シミュレーションも基本的に同様の規則を用いています。
図1に シミュレーション上の魚の3つの基本行動パターンを示します。
魚の背後は死角であり、そこにいる他の魚を認識することは出来ません。 魚の認識範囲に複数の魚が存在する時には、近くに存在する魚からの影響を受け易いものとします。 自分の周りに一匹も魚が見えない時には、仲間を探して、ランダムに方向を変えます。
図1 魚の基本行動規則
普通は、「魚の群れ」をシミュレーションするには、これだけの規則で十分かもしれませんが、本シミュレーションでは、少し工夫を凝らして、2種類の魚の間に喰う・喰われるの関係を入れてみました。 本シミュレーションでは、上記の魚を 別なハンター魚が狙っています。 この為、小さな魚は、図2に示すように ハンター魚から逃げるために、さらに一つの規則を追加します。すなわち、第4の規則として、
規則:4 ハンターを認知したならば、ハンターの進行方向と直角方向に逃げる。 複数のハンターを認知したならば、近くに存在するハンターからの影響を多く受ける。
一方で、ハンター魚には、餌魚に対する捕食の為の行動パターンとして、下記行動パターンを追加します。(図2参照)
規則:5 餌魚を発見したならば、その方向へ直進する。
規則:6 同じ方向に複数の餌魚を発見したならば、最も近い魚をターゲットに選択する。
規則:7 現在位置から等距離に複数の餌魚を発見したならば、現在の進行方向へ最も近い魚をターゲットに選択する。
図2 異種類の魚が存在するときの行動規則
<シミュレーション>
空間は、無限に広がった空間を想定しています。 画面上では、都合上 680×400ドットの空間に、全ての魚を表示し、右端へ隠れた魚は、左端から出てきますが、この時の魚は同一空間ではない事に注意して下さい。 また、餌魚が食い尽くされて、シミュレーションがすぐに終了しない様にするため、魚の数は不変で、食われても死なないで、すぐに、現実に復帰するものとしています。
さて、シミュレーションを開始すると、小さな魚は、群を形成し始めます。 一方、ハンター魚は、魚群を発見し、突っ込んできます。 魚群は、ハンターの攻撃をかわすものの、バラバラにはならずに、群の形は保ったままです。 群に留まるかぎり、ハンターに食われる危険性は減少します。 群に突っ込んだハンター魚は、多くの魚に幻惑されてなかなかターゲットを絞る事が出来ないようにみえます。 しかし、希に、群から離れた個体が発生すると、それが格好の餌食となる傾向にあります。
現実世界でも、弱い生物が群をなすのは 本シミュレーションのように 敵の攻撃をかわすのに都合がよいためだと思われます。
一方、ハンター側からいえば、多数で攻撃すると、逃げる側の方向を定めにくくし、全体としての捕食率を上げることができるのでしょう。
実際に、魚の数を変えて シミュレーションを行なってみると それが良く解ります。
魚の数を変化させた時の、捕食率のシミュレーション結果を表1に示します。
小魚(匹) | ハンター魚(匹) | 捕食率(一匹当たり 1000計算時間の捕食回数) |
1 | 1 | 3〜6回 |
10 | 1 | 0〜2回(但し、離れた個体がいない時) |
1 | 3 | 5〜7回 |
<参考文献>
1.服部 桂著 人工生命の世界
オーム社
2.Ellen Thro著 _ 人工生命 カットシステム
3.佐倉 統著 動き始めた人工生命 同文書院
4.科学シミュレーション研究会 複雑系・カオス・量子 講談社
5.吉永 良正 複雑系とは何か 講談社
6.日本情報処理開発協会 人工生命の方法
工業調査会
7.スティーブン・レビー著 人工生命
朝日新聞社
8.佐倉 統
フランケンシュタインの末裔たち
日本経済新聞社
9.ルーディ・ラッカー著
人工生命研究室 ASCII
キーワード: 魚の群れ、Javaプログラム、シミュレーション、創発、複雑系、人工生命
初版:2013/06/12 |