SWARM LAB EXPERIMENT 30
SINGLE HTML / OFFLINE
COLLECTIVE BEHAVIOR / 集団行動の比較実験

リーダーあり vs なし

同じ初期配置、同じ環境。群れの「方向の決め方」を変えて観察する。

ひとつの指令。隣り合う合意。
どちらも単純なルールから生まれる動き。
個体を除き、乱れを加え、その違いを探る。
実行中00:00
SEED 000030
A

リーダーあり

追従個体が1体の進行方向を参照

指令を受信中
Canvasに対応したブラウザで開いてください。
ONE LEADER → FOLLOWERS
整列度
0%
最大群の割合
0%
稼働個体
160/160
B

リーダーなし

近くの個体同士で方向を合わせる

局所的な相互作用
Canvasに対応したブラウザで開いてください。
NEIGHBOR ↔ NEIGHBOR
整列度
0%
最大群の割合
0%
稼働個体
160/160
除去は両側1体ずつ。条件をそろえて比較。
画面クリックでも、両側の同じ位置に障害物を追加・削除。

共通パラメータ

変更は両側に適用
変更時は、同じシードで再スタート
共通の分離・結合と、右側の整列に使用
参照した方向に、どれだけ強く合わせるか
各個体の方向に加えるランダムな変動

整列度の推移 / 直近60秒

リーダーありなし
00:00同じ初期配置で比較を開始。

この比較モデルのしくみ

外部ライブラリ、画像、フォント、通信を使わない、Canvas 2Dによる1ファイルの実験です。図形の移動はあらかじめ決めた動画ではなく、個々の状態から毎ステップ計算しています。

変えているのは、整列に使う情報

項目A:リーダーありB:リーダーなし
方向の参照先リーダー1体の現在の進行方向。距離に関係なく瞬時に受信。近傍半径内の個体の平均進行方向。近傍がなければ現在の方向。
個体の性質リーダーだけが緩やかな自律旋回を行う。追従個体同士では方向を平均しない。全個体が同じ局所ルールを用いる。
共通ルール近づきすぎた個体から離れる(分離)、近傍の中心に寄る(結合)、壁・障害物を避ける。基本速度と整列の強さは共通。
除去ボタンリーダー(ID 0)を除去。以後は最終受信方向を保持。対応する一般個体(ID 0)を除去。残りの個体は局所的な整列を継続。

比較の条件

両側は同じ個体数・初期位置・初期速度・障害物・シードから開始します。同じIDには同じ時刻に同じ乱数由来の角度変化を加えます。ただし、その時点の位置や向きが異なるため、結果の軌跡は一致しません。「撹乱を加える」は全稼働個体の向きを一度だけランダムに回します。

数値の読み方

整列度は、各個体の速度を単位ベクトルにして合計した長さを、稼働個体数で割った値です。

整列度 = | Σ (vᵢ / |vᵢ|) | / N × 100%

100%は全員が同じ方向、0%に近いほど方向が相殺されています。整然と円を描く群れでも、全体の整列度が低くなることがあります。最大群の割合は、近傍半径以内のつながりをたどって得られる最大の連結集団が、稼働個体に占める割合です。半径を変更するだけでも値は変わります。障害物による通信遮断はモデル化していません。

試し方

まず数秒観察し、リーダーを除去します。次に撹乱を加えて回復のしかたを比較します。画面をクリックすると両側の同じ座標に障害物を置けます。円を再クリックすると削除します(最大8個、重なり配置は不可)。障害物の追加で内部に入った個体は、表面へ移されます。

リセットは現在のパラメータ・障害物・シードを保ったままやり直します。サイコロはシードを変えます。個体数の変更も再スタートし、その他のパラメータ変更はその時点から反映されます。停止中でも操作は適用されます。

このデモから、中央集権と分散型の一般的な優劣は結論できません。左の通信は距離・遅延・容量の制約がなく、右には共通の目的地を与えていません。故障検出、リーダー交代、情報伝達の遅延、現実の無線通信も省略しています。除去後に左を停止させる演出はしていません。目的地到達率や実機の安全性を評価するモデルではありません。

操作・実装

Space:再生 / 停止、R:同じ条件でリセット、L:1体ずつ除去、D:撹乱、C:障害物を消去、?:この説明。CanvasにフォーカスしてEnterを押すと中央の障害物を切り替えます。PNG保存はその時点の比較画像を作成します。

シミュレーションは1/60秒の固定時間刻み、近傍探索は空間グリッド方式、履歴グラフは0.25秒ごとに更新します。速度設定はシミュレーション時間の進み方を変えます。極端に遅い端末では実時間より進みが遅くなる場合があります。タブが非表示の間は進行を止めます。OSの「視差効果・動きを減らす」設定が有効な場合は、停止状態で開きます。