群知能と魚・鳥の群れ:人工生命の基礎知識4

人工生命の基礎知識

更新日:2022年12月28日((初回投稿)
著者:東京大学 情報理工学系研究科 電子情報学専攻 教授 伊庭 斉志

前回は、アリのフェロモントレイルを例に、メタヒューリスティクスについて紹介しました。今回は、群知能と魚・鳥の群れについて解説します。鳥や魚の群れ行動をコンピュータ上に表現する試みは、人工生命応用としてよく知られています。特に、ジョージ・ルーカスらによるILM(Industrial Light & Magic)社の手法は、CGで作成した恐竜の群れの動向などに生かし、1990年代からハリウッド映画に取り入れられて成功しました。さらに、この集団行動による賢さは、AIにおける最適化手法としても利用されています。

1. 鳥や魚はなぜ群れるか?

これまでに数多くの科学者が、鳥や魚の群れ行動をコンピュータ上に表現しようと試みてきました。この中で特に有名なのが、クレイグ・レイノルズやフランク・H・ヘプナーといった鳥の動きをシミュレートしてきた人々です。コンピューター・グラフィックスを研究するレイノルズは、鳥の群れの美しさのとりこになり、動物学者のヘプナーは、一瞬にしてまとまったり散らばったりする鳥の群れのルールを見つけることに興味を持ちました(図1)。

図1:さまざまに姿を変えるムクドリの大群
図1:さまざまに姿を変えるムクドリの大群

彼らは、ミクロレベルではセルラ・オートマトン(格子状のセルが互いに隣接するセルの状態に応じて変化する離散的計算モデル、第5回参照)によるような非常にシンプルな動きであるのに対して、マクロレベルではカオス的な非常に複雑な動きをするところに目を付けました。彼らのモデルでは、個体相互間に与える影響が非常に大きな割合を占めています。群れの一連の動きは、自分自身と仲間との間の距離を最適に保とうとするルールで実現できることが分かりました。

2. boidのシミュレーション

ボイド(boid)は、レイノルズが考案し作製した人工生命シミュレーションプログラムで、名称は鳥もどき(bird-oid)から来ています。レイノルズのCGアニメーションは、boidと呼ばれるエージェントの集まりから成ります。エージェントは、群を構成する最小単位であり、環境認識機能を持ち、自ら行動決定する能力があります。各boidは、以下の3つのベクトルを合成することで動きを決定し、合成の際の係数を調整することで、さまざまな動きのパターンが実現されます。

  • 1:最も近い他者あるいは障害物から離れようとする力
  • 2:群れの中心に向かおうとする力
  • 3:目標位置へ向かおうとする力

このように、単純な行動規範をそれぞれの個体が持ち、全体として複雑な群れ行動が創発します。この技術は、映画の特殊効果やアニメーションで盛んに応用されています。

ここでは、boidのアルゴリズムの詳細を説明しましょう。これは空間を数多くの個体(boid)が動き回るものであり、それぞれの個体は速度ベクトルを保持しています。boidの群れを実現させる振る舞いは、以下の3つの要素から成ります。

  • 1:衝突の回避~近くにいる仲間と衝突しないようにする~
  • 2:速度を合わせる~近くの仲間と速度を一致させようとする~
  • 3:群れの中心に向かう~近くにいる仲間に周りを囲まれた状態になろうとする~

boidには、それぞれ自分にとっての最適距離があります。そして自分の近くにいる仲間との間で、この距離を保ちたいと考えて振る舞います。最も近くのboidとの距離が最適距離を下回ると、衝突する恐れがあります。そこで、これを回避するため、最も近くにいるboidの位置が自分より前なら自分はスピードを落とし、逆に最も近くにいるboidが自分より後ろなら、自分はスピードを上げます。

また、群れから離れすぎないためにも、この最適距離を用います。最も近くにいるboidとの距離が最適距離よりも大きいとき、その仲間が自分より前ならスピードアップし、後ろならスローダウンします。ただし、boidにとっての前と後ろは、自分の目を通り、進行方向と直交する線の前後として定義されます。

速度を合わせるために、boidは最も近くにいる仲間と平行に(同じベクトルで)飛ぼうとします。これによるスピードの変化はありません。さらに、群れの中心(boidの集合全体の重心)に向かうようにも速度を常に変更しています。

それぞれのboidは、自分の視界を有しています。最も近くにいるboidを探す場合、自分の視界内のboidだけを考えます。ただし、群れの重心を計算するのには、他のboidも含めた全体の座標位置を使います。視界の大きさを変えることで、群れの集散具合を調整することができます。

図2は、boidによるシミュレーションです。障害物を巧みにかわしながら、集団が離合集散する様子が観測できます。

図2:boidのシミュレーション
図2:boidのシミュレーション

同じようにして、図3第1回図1を再掲)のような大魚に襲われる小魚の群れの逃避行動をシミュレートすることも可能です。それは、大物の敵に襲われて逃げ惑う小魚の行動や、パニックになって群れがばらばらになる様子です。

図3:ギンガメアジの集団行動(フィリピン、バリカサグ)
図3:ギンガメアジの集団行動(フィリピン、バリカサグ)

3. PSOと最適値探索

続きは、保管用PDFに掲載中。ぜひ、下記よりダウンロードして、ご覧ください。