Boids / Particle Life

局所ルールを持つエージェント集団から群れ行動や自己組織化が創発する、マルチエージェント系ALifeの2つの代表モデル。

使い方

Boids(Craig Reynolds, 1986)

各個体は近傍の仲間だけを見て、次の3つのベクトルを合成した加速度で動きます。

Boidsの歴史的な新しさは、群れ全体を指揮する中央制御が一切無いのに、この3つの単純な局所ルールだけから、まるで本物の鳥や魚の群れのような、滑らかで生物的な集団運動が創発する、と示した点にあります。1986年当時、群れの動きはトップダウンにスクリプトされるのが普通でしたが、Reynoldsはボトムアップな創発だけで同じ現象を再現しました。

パラメータをいじって、3つの力のバランスがどう群れの性格を変えるか試してみてください。Separationを強くしすぎると散り散りに、Cohesionを強くしすぎると1つの塊に潰れます。

Particle Life

F(r) = r/β − 1  (r < β、常に反発)
F(r) = Atype(i),type(j)·(1 − |2r−1−β| / (1−β))  (β ≤ r < 1)
F(r) = 0  (r ≥ 1)

Particle Lifeは、Boidsのような「群れ行動」を明示的に作り込むのではなく、色(種類)ごとに異なる引力・斥力の行列だけをランダムに与える、もっと下のレイヤーのモデルです。近すぎると必ず反発し(潰れて重なるのを防ぐ)、少し離れた距離では種類の組み合わせごとに決まった符号・強さで引き合ったり反発したりします。

このモデルの面白さは、同じ数式・同じパラメータレンジのまま、行列の中身をランダムに変えるだけで、全く性質の違う"生態系"が生まれることです。ある行列では群れがクラスターを作って静止し、別の行列では一方が他方を延々追いかけ回す「捕食者-被食者」的な運動が生まれ、また別の行列では膜のような構造や、細胞質流動のように内部を撹拌し続ける塊が生まれます。単純な物理法則から多様な"生態"が生まれる様子を、ボタン一つで何度も引き直して観察できます。

2つのモデルの位置づけ

Boidsは「群れる」という結果を出すために3つのルールを意図的に設計したモデルです。一方Particle Lifeは、ルール自体をランダムに生成し、その帰結として偶然「群れる」「追いかける」「固まる」といった行動が生まれるかどうかを観察する、より探索的なモデルです。ALIFE研究の文脈で言えば、Boidsは「デザインされた創発」、Particle Lifeは「無数にありうるルール空間からの偶然の創発」という、対照的な2つのアプローチを代表しています。

参考文献