交通流:堵车从哪来
高速上明明没有事故,车流却会莫名其妙停下来,过几分钟又莫名其妙动起来。这种"幽灵堵车"不需要任何外部原因——只要司机有一点点随机的犹豫,加上车与车之间的安全距离约束,堵车就会自己长出来。Nagel 和 Schreckenberg 在 1992 年用四条规则说清了这件事。
LAB 01
NaSch 模型
时空图上那些向后传播的黑条纹,就是堵车波
问题
高速上没有事故、没有施工,车流却毫无理由地停下来,过一会儿又自己散开。这种"幽灵堵车"是从哪儿冒出来的?这一台用一个只有四条规则的模型把它造出来。
模型
Nagel–Schreckenberg 模型,每个时间步对每辆车依次做四件事:
①加速 v ← min(v+1, vmax) ②避撞 v ← min(v, d−1) ③随机慢化 以概率 p 令 v ← v−1 ④前进 x ← x+v
v 是速度(格/步),d 是与前车的间距,p 是随机慢化概率。第三条是全部关键——去掉它堵车就消失。平均速度—
流量—
末刻的堵点数—
车辆总数—
时空图上那些向左下方倾斜的黑色条纹,就是堵车。它们是斑马纹一样规律的斜线,斜率意味着堵车本身在向后移动——大约每一步退一格。这不是比喻:现实高速上的堵车波确实以大约每小时 15 公里的速度逆着车流往后传,这个数在不同国家、不同年代测出来都差不多。把密度从 5% 慢慢往上拖。低密度时时空图是一片均匀的斜纹(自由流,每辆车都在跑满速);过了某个密度,第一条黑条纹出现;再往上,黑条纹越来越宽,最后连成一片。注意整个过程里没有任何外部干扰——没有事故、没有红灯、没有坡道。唯一的"原因"是那个随机减速概率 p:某辆车无缘无故慢了一格,后车被迫刹车,再后面的车刹得更狠,这个扰动一边放大一边向后传,就成了一条黑条纹。这是自组织最干净的例子之一:宏观上一个持续、结构分明、可测速度的模式,完全来自微观的随机涨落加上一条局部约束。
LAB 02
基本图
密度—流量曲线:临界密度之后,车越多反而走得越少
问题
修路之前总要问一句:这条路最多能通过多少车?直觉是车越多流量越大,但真实的密度—流量曲线是一个倒 V:过了临界密度,车越多反而走得越少。
模型
基本图(fundamental diagram)画的是流量 q 随密度 ρ 的变化,恒等式是:
q = ρ · v̄, qmax 出现在临界密度 ρc
ρ 是车辆密度(车/格),v̄ 是平均速度,q 是流量(车/步)。ρ 小时 v̄ ≈ vmax,q 随 ρ 线性上升;ρ 大时车互相挡,v̄ 掉得比 ρ 涨得快。最大流量—
达到最大流量的密度—
p=0 时的最大流量—
p=0 的理论临界密度 1/(v+1)—
这条倒 V 形曲线叫基本图,是交通工程里最基本的一张图。左半边是自由流:车越多,通过的车越多,流量按 q = ρ·v 线性上升。右半边是拥堵流:车越多,大家走得越慢,流量反而下降。顶点就是这条路的通行能力,对应的密度叫临界密度。虚线是完全没有随机减速的理想情况:vmax=5 时最大流量 0.805,临界密度 0.194,和理论值 v/(v+1)=0.833、1/(v+1)=0.167 对得上。实线是有随机减速的真实情况:同样的最高限速,最大流量掉到 0.474,只剩理想值的 59%,而且临界密度提前到 0.129。这四十个百分点的损失,全部来自"司机偶尔无缘无故慢一格"。这个数字有很实际的含义:提高道路通行能力,最有效的手段往往不是提高限速,而是减少驾驶行为的随机性——这正是自适应巡航、车距保持系统和自动驾驶被寄予厚望的原因。把 p 拖到 0 再拖回来,看那个顶点怎么塌下去,你就明白为什么"所有车都由机器开"在理论上能让同一条路多跑将近一倍的车。
LAB 03
随机慢化
把那一点点随机减速关掉,堵车就完全消失了
问题
上一台把随机慢化当成一个参数。这一台把它调到 0,看会发生什么——如果堵车真的来自"车太多",关掉一点点随机性应该没什么影响。结果是堵车完全消失。
模型
p = 0 时模型是确定性的,系统会收敛到一个所有车等速等距的定态。
p = 0 → 均匀流不动点; p > 0 → 扰动被放大成向后传播的堵车波
堵车波的传播速度约为 −1 格/步(逆着车流走),这个数在真实高速数据上是约 −15 公里/小时,几十年来相当稳定。左图(p=0)的平均速度—
右图的平均速度—
左图末刻的堵点数—
右图末刻的堵点数—
两张图用的是同一个密度、同一个限速、同一个随机种子,唯一的区别是右边的司机偶尔会无缘无故慢一格。左边干干净净:所有车排成整齐的斜线,平均速度就是限速,一个堵点都没有。右边黑条纹遍布,密度 20% 时平均速度从 4.00 掉到 2.15——几乎腰斩。这个对比要说的是:堵车不是"车太多"造成的,而是"车太多 + 行为有噪声"共同造成的。在完全确定的规则下,即使密度达到 20%(远超临界密度 0.167),车流也能自组织成一个完美的稳定状态——每辆车保持相同车距、相同速度,谁也不用刹车。这个状态是存在的、稳定的、最优的。随机减速做的事情,是不断把系统从这个最优状态里踢出来。而一旦被踢出来,密集车流没有足够的空间自行恢复,扰动就只能向后放大。把 p 从 0 一格一格往上加,你会看到堵车不是"到某个 p 才出现",而是只要 p>0 就立刻出现,然后随 p 增大而变密——这是一个没有阈值的退化。
LAB 04
双车道与换道
换道规则一改,总通行能力是升还是降
问题
加一条车道、允许换道,总通行能力一定会上升吗?不一定。换道本身要占用间隙、会逼后车减速,规则设计不当反而拖累整体——这是交通工程里真实存在的反直觉结果。
模型
双车道 NaSch 加换道规则:满足"本道不够快、目标道更宽、且不会撞到后车"才换。
换道条件:d < min(v+1, vmax) 且 dother > d 且 dback > vback
d 是本道前方间距,dother 是目标车道前方间距,dback / vback 是目标车道后车的间距与速度。三个条件缺一不可,第三条就是安全条件。双车道的单位流量—
同密度单车道的流量—
相对单车道的增益—
每辆车每步换道的概率—
换道能不能提高通行能力?答案是"能,但远没有想象中多"。在同样的密度下,允许换道带来的单位流量增益通常只有百分之几,而且密度越高增益越小,在接近拥堵时甚至可能为负——因为换道本身要占用目标车道的空隙,相当于给后车制造了一次额外的刹车。把"愿意换道的概率"从 0 拖到 100%,看流量和换道频率怎么变:换道频率一路上升,流量却很快就不再涨了。这解释了一个常见的经验:在拥堵路段频繁变道,几乎不会让你更快到达,却明显增加事故风险。真正有效的是另一件事——把密度压在临界密度以下。这就是匝道信号控制(ramp metering)的全部道理:宁可让车在匝道上多等三十秒,也不要让主线越过临界密度。一旦越过,流量会从顶点滑到右半支,而右半支是"车越多走得越慢"的恶性区间,要退回来比不进去难得多。
这一页想说的
NaSch 模型只有四条规则——加速、避撞、随机减速、前进——却复现了交通流的几乎全部宏观现象:自由流与拥堵流的相变、倒 V 形基本图、向后传播的堵车波、幽灵堵车。三个可以直接用的结论:通行能力的四成损失来自驾驶行为的随机性;堵车波以大约每步一格的速度逆流而上;把密度压在临界密度以下,比提高限速或鼓励换道都有效得多。