椋鳥と鷹の行動をシミュレーションしてみた
『「みんなの意見」は案外正しい』 があまりに面白かったので、ちょっと遊んでみることにしました。 いろいろエピソードがあったけど、ビジュアル的にも面白いものできそうなので、ムクドリの話をシミュレーションで実証しました! この著作の中では、このように書かれています… 外部から観察していると、群れを守ろうとするリーダーが群れの動きを導いているように見える。そこまでいかないにしても、椋鳥たちは少なくともお互い協調して、群れの生き残りのためにあらかじめ合意した戦略に沿って動いているように見える。だが、どちらの見解も間違っている。椋鳥は次の四つのルールに従って行動している。 ①中心にできるだけ近いところにいるようにする ②隣の個体と二、三羽分の距離を空けて飛ぶようにする ③ほかの個体にぶつからないようにする ④鷹に襲われたら逃げる ほかの個体の次の行動を知っている椋鳥はいない。ほかの個体に命令する椋鳥もいない。群れが正しい方向に進み、捕食者の攻撃を避け、バラバラになっても群れがもう一度まとまれることを保証するのは四つのルールだけだ。 ムクドリには、指揮をするリーダーがいるわけでも、あらかじめ合意した戦略があるわけでも、お互いの協調しているわけでもなく、単純な四つのルールで行動していると。 じゃあ、このルールだけで本当に鷹から逃げつつ群れがまとまっていられるのか!?シミュレーションで実証してみよう! まず、ルールについてもう少し定量的に表現してみる、 ①中心にできるだけ近いところにいるようにする まず、N羽のムクドリが3D空間上にいることを考える。それぞれのムクドリは全ムクドリの位置座標の重心点に向かおうとする。ただし、②、③、④の条件の方が優先順位が高い。 ②隣の個体と二、三羽分の距離を空けて飛ぶようにする お互いの距離は群れの大きさに影響するので、とても重要なパラメータ。ムクドリ同士の距離が、ある一定値( Dsとする )以下になる場合は、重心点から遠ざかるように行動する。 近づきすぎた場合にどう行動させるか、難しかしい。遠ざかる方に行動したところで、ぶつかる可能性はある。しかし、あまり複雑な条件検討をしたくはなかったので、取りあえず、近づきすぎたら、広がる方に少し動くようにさせるだけに。 ③ほか...