魚の動きをシミュレーションする方法
今回は、以下の記事で使用したシミュレーションについて、少し深堀りして紹介します。
人間は他人を気にして生きている
魚群行動シミュレーションは過去に色々な研究が行われています。
有名なのはマルチエージェントシミュレーションという手法をベースとしたものです。
マルチエージェントシミュレーションというのは、「周囲の状況を認識し、それに基づいて判断・行動するエージェントを、複数作成して全体の動きを評価する」ようなシミュレーション手法です。
ちょっと難しい言い方になってしまいましたが、つまり「自分の次の行動を他人の行動や状況によって決める」というようなシミュレーションです。
例えば、人込みの中を歩く時を考えてください。
この場合、人込みの中の一人一人がエージェントということになります。
人込みの中を歩くときは、他人とぶつからないようにしなくてはいけません。
これを厳密に言うと、
「他人と近づきすぎると、他人から離れる方向に動く」
ということになります。
また、人込みの中を歩くときは、他の人たちよりスピードが速いと、前の人にぶつかってしまいます。
遅すぎても、後ろの人にぶつかられてしまいます。
それを避けるために無意識下で、
「他人の平均的な歩行スピードと合わせようとする」
という調整が行われています。
つまり、人込みの中を歩く人は、他人の距離や歩行速度によって自分の行動を無意識的に決めているということです。
これをマルチエージェントシミュレーションで再現するためには、
・他人と近づきすぎると、他人から離れる方向に動く
・他人の平均的な歩行スピードと合わせようとする
というルールをエージェントに与えて、このエージェントを仮想空間にたくさん配置します。
そうすることで、人込みのシミュレーションが可能になります。
魚も他個体を気にして泳いでいる
同じように、魚をエージェントと考えて、他の個体の遊泳行動によって自身の遊泳行動を決定すると考えます。
このエージェントを多数配置することで、魚の群行動を再現することができます。
有名なものとして、Boidモデルと三宮モデルがありますので、これらについて簡単に紹介します。
Boidモデル
Boidモデルは、鳥の群行動を再現するために開発されたもので、1987年に発表されたモデルです(Reynolds,1987)。
私も1987年生まれなので、同い年です。
ちなみにBoidという言葉の由来は、Bird+oidからきており、oidは「っぽいもの」みたいな意味合いがあります。
つまり、「鳥っぽいもの」みたいな意味合いです。
似たようなものとして、
ボーカロイド:Vocaloid→Vocal+oid
ヒューマノイド:Humanoid→Human+oid
とかもありますね。
Boidモデルは以下の三つのルールを各個体に与えるもので、自然な群の動きを再現するもので、魚の行動にも応用されています。
1. Separation:近くの個体から遠ざかろうとする動き
2. Cohesion:近くの個体群に近づこうとする動き
3. Alignment:近くの個体と速度を合わせようとする動き
このBoidモデルによって魚群行動を再現したシミュレーションの様子です。
このシミュレーションでは、100個体の遊泳行動をシミュレーションしていますが、この100個体の1個体1個体が、他の個体の影響を受けながら遊泳しています。
三宮モデル
三宮モデルは、三宮先生によって考案されたモデルです。
特に、水産業に対する適用事例が多いモデルになります。
三宮モデルでは、各個体は他個体からの影響を受けるという点ではBoidモデルと似ていますが、特に障害物に対する行動について深く研究されています。
水産において魚群行動シミュレーションを活用する場合、
・漁具に対する魚の行動はどんな感じか
・生簀内を遊泳する魚の行動はどのようなものか
といったように、必ず網地といった障害物に対する行動を考えなくてはならないからです。
三宮モデルでは、網地といった障害物に対して、「障害物を避ける行動」と「障害物に誘引される行動」の両方を考慮しています。
例えば、ブリといった魚種は、網地に沿って遊泳するという習性をもつことが知られています。
そのため、魚が「障害物(網地)を避ける行動」と「障害物(網地)に誘引される行動」の両方を有するということは理にかなっているように感じます。
以上のような前提のもとに、トラップに対して魚がどのように入網したかをシミュレーションしています。
自分の研究への応用
以上のような先行研究があるのですが、私もいくつかの研究で魚群シミュレーションを使用させてもらっています。
その一つが、以前に紹介したクロマグロの遊泳行動シミュレーションの研究です。
これらの研究では、Boidモデルと三宮モデルのハイブリッドのようなモデルを使用しています。
具体的にはBoidモデルをベースとしながら、障害物に対する行動は三宮モデルを参考に構築しました。
というのは、三宮モデルは2次元平面の遊泳行動を前提としたものであるため、3次元の遊泳行動を再現できなかったためです。
(試しに3次元に拡張した三宮モデルを構築してみましたが、非常に不自然な行動となってしまいました)
そのため、両者のいいとこどりを目指して、そのようなモデル構築を行いました。
終わりに
シミュレーションにはゴールがありません。
なぜなら、シミュレーションはあくまで予測・推測であり、実現象を超えることはないからです。
そのため、「構築したモデルそのものが正しいのか?」についても実は分かっていません。
ですが、そこで立ち止まってしまっても前に進まないので、過去の研究を参考にして、実計測も行いながら研究を進めるしかないと思っています。
次回は、このモデルを用いて「仮想空間で漁業を行う」ような研究について紹介したいと思います。