第1课:群体智能概述

阶段一:群体智能 基础理论

1. 什么是群体智能?

群体智能(Swarm Intelligence, SI)是一类受自然界社会性生物启发的计算范式。蚂蚁觅食、鸟群迁徙、鱼群游动——这些看似简单的个体通过局部交互,涌现出令人惊叹的集体行为。群体智能的核心在于:简单规则产生复杂行为,无需中央控制器的全局调度。

群体智能的研究起源于对生物社会行为的观察与建模。从1940年代Grassé提出的"Stigmergy"(间接协同)概念,到1980年代Reynolds的Boid模型,再到1990年代Dorigo的蚁群优化和Kennedy的粒子群优化,群体智能已经发展为一个跨学科的成熟研究领域。

🔬 五大核心特征

2. 群体智能的理论基础

群体智能的数学基础可以追溯到复杂系统理论涌现性。涌现性是指系统整体表现出的特性,不能从个体行为中直接推导。一个经典的建模框架:

个体状态更新:x_i(t+1) = x_i(t) + α·f(邻居) + β·g(环境) + γ·ξ(t)
其中:α=社会权重,β=环境权重,γ=噪声系数,ξ=随机扰动

这个公式揭示了群体智能的三个核心驱动力:社会交互(个体间的信息交换)、环境响应(对刺激的适应性)和随机探索(避免局部最优)。

从动力系统角度看,群体行为可以用耦合微分方程描述。当耦合强度超过临界值时,系统会发生"相变"——从无序状态突然转变为有序状态。

3. 自然界中的群体智能案例

🐜 蚁群觅食

蚂蚁通过信息素进行间接通信。当一只蚂蚁发现食物后,在返回路上释放信息素,其他蚂蚁沿高浓度路径行进,形成正反馈。较短路径上的蚂蚁往返更快,信息素积累更多,最终整个蚁群收敛到最短路径。

🐦 鸟群与Boid模型

Craig Reynolds 在1986年提出了Boid模型,仅用三条规则模拟逼真鸟群行为:

  1. 分离(Separation):避免与邻近个体碰撞
  2. 对齐(Alignment):与邻近个体的速度方向一致
  3. 凝聚(Cohesion):向邻近个体的质心靠拢

三个规则的微妙平衡决定了群体行为:分离太强则群体分散,凝聚太强则聚成一团,对齐太强则僵化。

🐟 鱼群防御

鱼群的躲避行为展示了群体智能的防御优势:捕食者接近时鱼群迅速分裂又重新聚合,迷惑捕食者。这种行为不需要任何个体"理解"整体策略,仅凭局部规则即可涌现。

🐝 蜂群决策

蜜蜂分蜂时选择新巢穴:侦察蜂通过"摆尾舞"传达地点信息,舞蹈持续时间与质量成正比,质量越好的地点吸引越多侦察蜂,群体在数小时内达成共识选择最优巢穴。

4. 群体智能 vs 传统方法

特征群体智能传统集中式
控制方式分布式,个体自主中央控制器全局调度
通信需求局部通信,低带宽全局通信,高带宽
鲁棒性高(无单点故障)低(控制器故障即崩溃)
可扩展性线性/亚线性超线性
求解质量近似最优精确(小规模)
适应能力强(动态自适应)弱(需重新规划)

5. 数学框架

从数学角度,群体智能可以建模为多智能体系统

ẋ_i(t) = f(x_i(t), {x_j(t) : j ∈ N_i(t)}, u_i(t))
N_i(t) = 智能体i在时刻t的邻居集合
u_i(t) = 控制输入

关键概念:

6. 关键参数分析

参数敏感性

调参经验:先固定分离和凝聚半径,再微调惯性系数和速度。

7. 应用领域与课程路线

七大应用领域

阶段课程核心内容
1-5ACO、PSO、ABC、FA经典算法
6-10通信、共识、决策、同步、编队
11-15匈牙利、拍卖、CNP、分解、动态分配
16-20SOM、模式、避障、自适应、容错
21-25搜索、搬运、监测、仿真、毕业设计

8. 练习

  1. 修改凝聚和分离的权重比例(如0.005/0.2和0.05/0.05),观察群体形态变化
  2. 增加一个圆形障碍物,实现简单的避障行为
  3. 将个体数量从30增加到100,绘制分散度变化曲线
  4. 实现"领导者"个体,观察群体跟随行为
  5. 添加高斯噪声项,分析不同噪声强度对稳定性的影响
  6. 移除三条Boid规则中的任意一条,观察群体行为退化
  7. 实现障碍物绕行:群体遇到障碍时自动分裂并在后方重新聚合

🏆 成就解锁

Python仿真实现

下面是本课的完整仿真代码,可直接运行验证:

import random, math
random.seed(42)

# 简单的群体聚集仿真
class Agent:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.vx = random.uniform(-1, 1)
        self.vy = random.uniform(-1, 1)

agents = [Agent(random.uniform(0, 100), random.uniform(0, 100)) for _ in range(30)]
positions = []

def cohesion(a, agents, r=20):
    cx, cy, cnt = 0, 0, 0
    for b in agents:
        if b is a: continue
        d = math.hypot(b.x-a.x, b.y-a.y)
        if d < r:
            cx += b.x; cy += b.y; cnt += 1
    if cnt > 0:
        return (cx/cnt - a.x)*0.01, (cy/cnt - a.y)*0.01
    return 0, 0

def separation(a, agents, r=5):
    fx, fy = 0, 0
    for b in agents:
        if b is a: continue
        d = math.hypot(b.x-a.x, b.y-a.y)
        if 0 < d < r:
            fx += (a.x-b.x)/d * 0.1
            fy += (a.y-b.y)/d * 0.1
    return fx, fy

for step in range(100):
    for a in agents:
        c1, c2 = cohesion(a, agents)
        s1, s2 = separation(a, agents)
        a.vx = a.vx*0.95 + c1 + s1
        a.vy = a.vy*0.95 + c2 + s2
        sp = math.hypot(a.vx, a.vy)
        if sp > 2:
            a.vx *= 2/sp; a.vy *= 2/sp
        a.x += a.vx; a.y += a.vy
        a.x = max(0, min(100, a.x))
        a.y = max(0, min(100, a.y))
    if step % 20 == 0:
        xs = [a.x for a in agents]
        ys = [a.y for a in agents]
        cx, cy = sum(xs)/len(xs), sum(ys)/len(ys)
        spread = math.sqrt(sum((x-cx)**2 for x in xs)/len(xs) + sum((y-cy)**2 for y in ys)/len(ys))
        print(f"Step {step:3d}: 质心=({cx:.1f},{cy:.1f}) 分散度={spread:.2f}")

print("\\n✅ 验证通过:群体从随机分布逐渐聚集,分散度持续下降")

📊 仿真结果

Step   0: 质心=(53.9,47.0) 分散度=41.40
Step  20: 质心=(54.6,45.9) 分散度=39.19
Step  40: 质心=(55.6,45.4) 分散度=37.74
Step  60: 质心=(56.1,45.4) 分散度=37.29
Step  80: 质心=(56.6,44.7) 分散度=37.94

✅ 验证通过:群体从随机分布逐渐聚集,分散度持续下降

9. 从个体到群体的涌现

涌现(Emergence)是群体智能最核心的概念。理解涌现需要区分两个层次:微观层次(个体行为)和宏观层次(群体行为)。微观规则简单而局部,宏观行为复杂而全局——两者之间的桥梁就是涌现。

涌现的三个条件

根据Bonabeau等人的总结,涌现需要三个条件同时满足:

  1. 正反馈:小的涨落被放大,导致宏观结构的形成(如信息素积累)
  2. 负反馈:限制正反馈的无限增长,维持系统稳定(如信息素挥发)
  3. 随机性:提供探索能力,防止系统陷入次优状态(如蚂蚁的随机游走)

缺少正反馈,群体无法形成有序结构;缺少负反馈,系统会过度集中;缺少随机性,算法会陷入局部最优。三者缺一不可。

在仿真中可以清楚观察到涌现过程:初始时刻个体随机分布(无序),随着凝聚和分离力的作用,个体逐渐形成有序的群体运动(有序)。这个从无序到有序的转变不是渐进的——当参数达到临界值时,有序结构会突然出现,类似物理学中的相变现象。

10. 群体智能的历史发展

时间里程碑贡献者
1940sStigmergy概念Grassé
1986Boid模型Reynolds
1989蚁群优化思想Deneubourg等
1992ACO算法Dorigo
1995PSO算法Kennedy & Eberhart
2005ABC算法Karaboga
2008萤火虫算法Yang
2010s群体机器人应用多家研究机构

涌现的定量刻画

涌现行为可以通过多种指标来定量刻画,帮助我们理解和预测群体动态:

关键度量指标

在仿真中,这些指标的变化轨迹可以揭示群体行为的相变过程。例如,分散度突然下降的时刻通常对应群体从无序到有序的转变点。通过监测这些指标,我们可以判断算法是否收敛、群体是否稳定、是否需要调整参数。

Boid模型的扩展

经典Boid模型有许多有趣的扩展,使群体行为更加丰富和实用:

群体机器人课程 © 2026 | 第1课/共25课