无需登录 数据私有 本地保存

鸟群动飞模拟 - Boyd算法可视化

16
0
0
0
FPS: -- 🐦 100
🧲 吸引模式

常见问题与知识点

Boids算法(又称Boyd算法、鸟群算法)是由Craig Reynolds于1986年提出的人工生命模拟程序,用于模拟鸟群、鱼群等群体行为。该算法通过简单的局部规则产生复杂的涌现行为(Emergent Behavior)——每只"Boid"(鸟个体)仅根据邻近同伴的状态做出反应,却能自发形成逼真的群体运动模式,如 flocking、swarming 和 herding。它是群体智能(Swarm Intelligence)计算机动画领域的经典算法。

① 分离(Separation):避免与邻近同伴发生碰撞,每只鸟会远离过于靠近的同伴。这保证了群体不会挤成一团。
② 对齐(Alignment):与邻近同伴的平均飞行方向保持一致。这使群体成员朝向大致相同的方向移动。
③ 凝聚(Cohesion):向邻近同伴的平均位置靠拢。这使群体保持聚集,不会四散飞离。
三条规则通过加权叠加,共同决定了每只鸟的加速度,从而产生自然流畅的群体运动。

电影与游戏:用于生成逼真的鸟群、鱼群、人群动画(如《蝙蝠侠归来》中的蝙蝠群)。
无人机集群:用于多无人机协同飞行的路径规划与避障。
机器人集群:用于多机器人系统的分布式控制。
交通模拟:模拟车辆流和行人流的群体行为。
优化算法:粒子群优化(PSO)等群体智能算法借鉴了Boids的思想。

增大凝聚力:鸟群更加紧密,形成紧凑的团状群体。
增大分离力:鸟群更加松散,个体间保持较大距离。
增大对齐力:群体方向更加一致,形成整齐的队列飞行。
减小感知半径:鸟只关注最近的邻居,群体可能分裂成多个小群。
增大速度:群体运动更快,动态变化更剧烈。
尝试将分离力设为0,观察鸟群如何挤成一团;或将凝聚力设为0,观察群体如何四散。

涌现行为是指系统整体表现出其组成部分不具备的复杂行为模式。在Boids算法中,每只鸟仅遵循三条简单规则,但整个群体却能表现出分裂与合并避障绕行领头鸟更替等复杂现象——这些行为并未被显式编程,而是从局部交互中自发涌现的。这是复杂系统理论的经典案例。

鸟群模拟(Boids)和鱼群模拟(Fish Schooling)本质上是同一类群体行为模型。两者都基于分离、对齐、凝聚三条核心规则。主要区别在于:鱼群通常还需要考虑三维空间水流影响以及捕食者-猎物关系等额外因素。Boids算法的通用框架可以扩展到几乎所有集群动物行为的模拟。