Boids
Boids算法是Craig Reynolds在1986年提出的一种人工生命算法,用来模拟鸟群、鱼群等生物群体的行为。Boids算法通过模拟个体之间的互动,让整个群体表现出集体行为。
术语
在Boids算法中,我们有以下术语:
- Boid:群体中的一个个体
- Perception(感知):一个boid能感知到的周围区域的半径
规则
在Boids算法中,我们有以下规则:
- Separation(分离):boid应避免与附近的boid挤在一起
- Cohesion(聚合):boid应朝附近boid的重心移动
- Alignment(对齐):boid应与附近的boid朝同一方向移动
演示
下面是Boids算法的演示。你可以调整参数,观察boid的行为变化。
- Count:模拟中boid的数量
- Perception:boid能感知的半径
- Separation:把boid推离附近boid的力
- Cohesion:把boid拉向附近boid重心的力
- Alignment:使boid的速度与附近boid趋于一致的力
- Highlight:开关,高亮第一个boid并显示它的感知范围
Count:
1
Perception:
0
Separation:
0
Cohesion:
0
Alignment:
0
Highlight:
有趣的事
我觉得这三条规则在一定程度上也存在于人类社会中,所以我们可以做一些有趣的思想实验,比如:
- Perception(感知):在更早的社会里,互联网出现之前,人们的视野要窄得多。他们只能关注自己的小世界,比如自己的村庄或部落。那时多样性更强,个体受更大范围社会规范的影响也更小。信息爆炸之后,“主流”更容易形成,人们的想法也更容易趋同。
- Separation(分离):这有点像现代人说的“边界感”。比如有人问你每个月赚多少钱,在有些社会里这很正常,在另一些社会里,人们会觉得你有问题。在边界感弱的社会里,人们更容易形成紧密的社群,归属感也更强。相反,在边界感强的社会里,个体更独立,但也更难真正与他人建立联系。
- Alignment(对齐):我觉得这和群体内部等级是否稳定有关。对齐程度低时,人们不一定要走主流的路,但群体整体仍会朝着一致的方向前进,同时允许内部位置发生变化。反过来,对齐程度高时,不仅整个群体朝同一方向移动,个体在群体中的相对位置也倾向于固定不变。