一团没有大脑的黄色黏菌、一群只会在地上乱爬的蚂蚁——它们没有地图、没有指挥、没有目标函数。可当 Sebastian Lague 用几千行 C# 把它们搬进 Unity 之后,这些"蠢东西"竟然自己走出了最优路径,甚至复刻出了东京地铁网的拓扑结构。这期视频真正要讲的,不是生物学,而是一类被程序员严重低估的算法思想:用局部规则和随机性,换全局最优解。
| 项目 | 内容 |
|---|---|
| 视频标题 | Coding Adventure: Ant and Slime Simulations |
| 频道 | Sebastian Lague(三百多万订阅) |
| 时长 | 约 27 分钟 |
| 播放量 | 已突破千万(千万级长尾科普标杆) |
| 发布 | 2019 年 11 月 |
| 核心主题 | 用代码复现蚁群与黏菌的"涌现式"自组织行为 |
打开任何一个算法课程,你接触到的几乎都是确定性算法:排序、查找、动态规划、Dijkstra 最短路。它们的共同点是——你得先有一个"上帝视角",知道整张图长什么样,再从全局出发算出最优解。这套思路统治了我们写代码的直觉。
但现实世界里有大量问题,恰恰不存在全局视角:网络里无数路由器各自只能看到邻居,无人机群在空中只能感知周围几十米,城市路网上的车辆谁也不认识谁。这类系统怎么找到全局最优?Sebastian Lague 这期视频用两个经典案例给出答案——别去找,让它"长"出来。这个观念的转变,对任何做分布式系统、路径规划、参数搜索、甚至系统设计的程序员,都是一次认知升级。
视频最迷人的地方在于:作者没有讲一堆公式,而是一行一行把规则写出来、按下播放键、然后看奇迹发生。这种"动手即顿悟"的叙事,比任何教科书都更容易让人理解什么叫 emergence(涌现)。
视频前半段,Lague 先写了一个最朴素的蚂蚁模拟:蚂蚁从蚁巢出发,完全随机地四处乱走;如果碰巧撞到食物,它就掉头回巢,并在回去的路上撒下一条"信息素"(trail)。其他蚂蚁对信息素有偏好——路径上信息素越浓,它们越倾向于跟着走。
这就是生物学家 Pierre-Paul Grassé 在 1959 年给这种现象起的名字:stigmergy(间接协同)。蚂蚁之间从不交流,它们只是修改环境,让环境替自己"说话"。一只蚂蚁留下的气味,会影响后来者的行为;后来者又用自己的脚步强化这条气味——一个无意识、无中心的反馈环就这样闭合了。
视频原话的意思:他反复强调自己只是给了蚂蚁三条简单规则——随机游走、找到食物后留下气味、对气味有偏好,其余什么都没做。所有"智能"都是规则相互作用的结果,而不是被编进去的。
这个洞察对程序员的冲击在于:你不需要一个中央调度器来协调海量 agent。只要设计好"局部规则 + 共享环境",协调会自己冒出来。这正是大量分布式系统(从 P2P 网络到区块链共识再到机器人集群)的设计哲学原型。
很多人第一反应是:既然信息素会强化好路径,那不就该直接让蚂蚁走浓度最高的方向吗?视频用一个反例告诉你不行。如果蚂蚁太"贪心"、太早地全部涌向某条还算凑合的路径,整个蚁群就会被局部最优困死——找到一条还行的路,就再也不去探索可能存在的更短路。
所以系统里必须保留一个"犯错"的成分:随机性。一部分蚂蚁始终在胡乱探索,哪怕绝大多数是白跑,但只要有一只撞上了更短路,它带回巢的强化信号就会逐步把整群蚂蚁"迁徙"过去。随机性在这里扮演的是探针(probe)的角色——它牺牲效率,换来跳出局部最优的可能。
延伸分析:这正是所有元启发式算法(metaheuristics)的灵魂——在"利用(exploitation)"和"探索(exploration)"之间反复横跳。模拟退火、遗传算法、蚁群优化、粒子群优化,本质都在解这道"该多贪还是多试"的权衡题。视频没有点破这层理论,但你只要看懂蚂蚁,就理解了这一整族算法的共同骨架。
视频里一个常被忽略却决定性的细节是:信息素会随时间挥发(decay)。这看起来只是为了让画面不至于糊成一片,但它在算法上是生死攸关的。
设想信息素永不消失:那么所有被探索过的路径浓度都会越来越高,最终整个空间被均匀的"白噪声"填满,蚂蚁再也分辨不出哪条路更好——系统丧失了聚焦能力。挥发机制让短期没人走的路径被慢慢"忘记",只留下被反复强化的好路径。换言之,遗忘和记忆同样重要:一个能收敛的优化系统,必须同时具备强化成功、淘汰冷门的能力。
延伸分析:这给工程实践一个直接启示——任何带反馈的系统(推荐算法、缓存淘汰、强化学习的奖励衰减、神经网络的正则化)都需要某种形式的"衰减"。没有衰减的正反馈,几乎必然走向过拟合或死循环。decay 不是优化项,是稳定项。
视频后半段是真正的高潮。Lague 实现了一个广为流传的黏菌(slime mould)粒子模型:屏幕上散布几十万个微小"粒子",每个粒子做四件事——
与此同时,全局 trail 场每帧进行扩散(diffuse)和衰减(decay)。就这五条规则,跑出来的画面令人头皮发麻:粒子自发聚拢成脉动的网络、流动的血管、甚至像菌丝一样向外蔓延的结构。
最震撼的对照来自现实:2008–2010 年,日本研究者 Atsushi Tero 等人把一团真实的多头绒泡菌(Physarum polycephalum)放在一张仿照东京都市圈地形的培养皿上,在每个主要城市对应的位置放上食物。一天半之后,黏菌长出的管网,与东京地铁网络在拓扑结构、长度、容错性上高度吻合。这项成果发表在 2010 年的 Science 上。视频正是用代码复现了这背后的机制——没有蓝图、没有全局规划,纯粹的局部规则,长出了堪比人类工程师数十年迭代的基础设施。
视频核心命题:网络结构的"好"是可以涌现出来的,不需要一个俯瞰全局的设计师。
视频中我最喜欢的一段是"调参实验"。Lague 改动那几个看似无害的参数:传感器张角(sensor angle)、感知距离(sensor distance)、转向速度、移动速度、沉积量、衰减率——结果画面风格发生质变:小角度小距离,长出细密的路网;中等参数,长出搏动的脉络;大角度,整个系统坍缩成不断旋转的漩涡。
延伸分析:这是一个绝佳的混沌边界(edge of chaos)演示。同一套规则,仅仅因为参数落在不同区间,就分别表现为"有序、复杂、混沌"。这对程序员的现实警告是:涌现式系统是参数敏感的。你不能像调用一个排序函数那样"保证正确",你需要扫参、需要可视化反馈、需要对失败模式有预期。这也是为什么 Lague 要把上百万粒子的计算扔到 GPU compute shader 上——没有这种性能,根本看不到涌现,调参也就无从谈起。
视频里有个技术细节值得专门拎出来:黏菌部分他用的是 compute shader,把每个粒子的逻辑丢给 GPU 并行执行。这不是炫技,而是必要条件。
几十万粒子、每帧三次采样、加上全场扩散衰减,如果在 CPU 上用普通循环跑,帧率会跌到个位数,根本无法实时调参。涌现现象有一个残酷的门槛:粒子数太少,它就不涌现。就像一两滴水不成"水流",规则要显现出宏观结构,需要足够的规模。所以"为了看清效果,我必须把它写快"——这是一个非常成熟的工程判断,也是这期视频区别于纯科普的地方:它示范了用性能换可观察性的实战手法。
看完视频很容易热血上头,恨不得什么问题都用蚁群去解。冷静下来,得回到工程师的本分。
该用的场景:解空间巨大、目标函数不可导或高度非凸、不需要保证最优只需要"足够好"、系统天然分布式、问题本身有路径/网络/调度结构。典型如车辆路径规划(VRP)、网络路由、排课、参数搜索、某些机器学习超参优化。Marco Dorigo 在 1992 年的博士论文里提出的蚁群优化(ACO),至今仍是解决旅行商问题(TSP)类组合优化的强力工具。
不该用的场景:问题有多项式时间的确定性解(最短路就用 Dijkstra/A*,别上蚁群)、对结果可解释、可证明、可复现有硬性要求(金融、医疗、安全关键系统)、规模小到暴力枚举都可行。一个常被忽视的代价是:涌现式算法本质是随机算法,每次运行结果不同,调试和验证成本远高于确定性算法。
一句话原则:涌现是用来对付"算不动"的,不是用来替代"已经能算动"的。
flowchart LR
V["Ant & Slime Simulations<br/>Sebastian Lague"] --> B[蚁群部分]
V --> C[黏菌粒子部分]
B --> B1[随机游走探索]
B --> B2[信息素正反馈]
B --> B3[信息素挥发 decay]
B --> B4[涌现近最优路径 → ACO]
C --> C1[数十万 GPU 粒子]
C --> C2[三触角采样]
C --> C3[转向最高浓度]
C --> C4[沉积+扩散+衰减]
C --> C5[涌现自适应网络<br/>复刻东京地铁]
B4 --> K[共同内核:<br/>局部规则 + 随机性 + 正反馈<br/>= 无中心规划的全局优化]
C5 --> K
K --> E[工程启示:<br/>元启发式算法<br/>路由 / 路径 / 调度 / 参数搜索]
flowchart TD
S([每个粒子 每一帧]) --> M[按当前方向移动一步]
M --> D[在脚下沉积 trail]
D --> SN[采样三个方向浓度:<br/>正前方 / 左转角 / 右转角]
SN --> T{哪边更高?}
T -->|左| TL[向左转]
T -->|右| TR[向右转]
T -->|前最高| F[保持方向]
TL --> E
TR --> E
F --> E
E[全局 trail 场:<br/>扩散 diffuse + 衰减 decay] --> S
第一,建立一个"涌现工具箱"的概念。 很多工程师遇到优化问题,本能反应只有两招:要么上梯度下降,要么上规则系统。这期视频给你补上第三条腿——基于 agent 的元启发式(ACO、PSO、Physarum 模型)。当你的问题是组合优化、网络设计、动态路由,且确定性算法算不动时,它们往往是性价比最高的选择。
第二,学会用"共享环境 + 局部规则"去解分布式协调。 想让成百上千个节点协同,与其设计复杂的中心化调度,不如想清楚:每个节点能看到什么、能修改什么、反馈环怎么闭合。Redis 当缓存、Kubernetes 调度、P2P 网络的洪泛与衰减——背后都有相似的味道:让局部规则在共享环境上自组织。
第三,把"衰减/遗忘"当成一等公民来设计。 任何带反馈的系统都要问自己:我有没有在淘汰旧信号?推荐系统的热度衰减、缓存的 LRU、限流器的滑动窗口、强化学习的 reward discount——没有这些"遗忘机制",系统迟早会被历史包袱压垮。
第四,用 GPU/可视化换取对复杂系统的直觉。 Lague 的实战手法值得借鉴:当一个系统的行为高度依赖规模和参数时,先把它的性能做到实时可调参,是理解它的最快路径。这对你调试任何"规模上去了才暴露"的并发/分布式 bug,同样适用。
第五,保持工程克制。 涌现很酷,但它随机、难复现、难证明。能用确定性方法解决的问题,别为了"炫"而上随机算法。判断标准很简单:如果你能写出正确性的证明,就别用概率;如果你连解空间都描述不清,那概率或许是你唯一的朋友。
这期视频用 27 分钟讲透了一件事:当问题大到没有全局视角时,别试图去"算"最优解,而要设计好局部规则,让最优解自己"长"出来——这正是涌现式算法给程序员的根本性启发。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
