noze.dev

生物の群れっぽいもの

粒子群最適化のアルゴリズムで生物の群れっぽいもの

とりあえず作ってみた

粒子群最適化という多次元空間で最適解を探索するアルゴリズムがある。もともと鳥や魚の群れをシミュレーションから考えられたものらしい。

こんなアルゴリズムで生物の群れの動きになるのかなぁと思って実際に作ってみた。

丸の中心が最適解=群れの目的地。そこまでの距離で評価して各粒子の移動方向を調整。

それっぽいような気もするけど、なんかちょっと違う。 長く動かすと位置の多様性が無くなって止まっちゃう。

物理的な制約を加える

複数の生き物が全く同じ座標にいるのは非現実的なので近くの粒子から離れるようなロジックを追加。 それから無限に加速できるのも非現実的なので速さに上限を追加してみた。

止まらなくなったし、動きもかなりそれっぽくなった。

パラメータによっていろんな動きになる

ゆっくりなほうがさかなっぽい

羽虫の群れっぽい

実際の生物の群れもこんなアルゴリズムで動いてるんだろうか。

パラメータ変えられる版

about

趣味で作ったものを置く場所です

link

twitter logo