目前的城市早晚高峰,大货车像蜗牛一样在路口那种令人窒息的楔形结里绞杀,明明前面是空白的,明明那里没车,可过了那个路口,车就像从河里捞出来一样堵成一堵墙。

这种画面我们天天见,但它背后的物理过程简直是个让人头大又不得不看的数学怪兽。

实际上交通流仿真,说白了就是给这堵墙配上“人脑”,让计算机学会如何把现实里的车流拆碎、重组、估算出来,然后重新拼回去。 我们不用非得装满满一盒子数据,有时候只给一个“速度”和“间距”的数值,电脑就能跑出一段路的动态。

这就好比你去开快车,速度是定好的,跟了后车的距离也是定好的,只要那俩数字凑齐了,车就能合法地跑。但在真的城市里,这数字没那么铁。车开得有点快,后车认定慢,就想跟上去,这就形成了“前堵后通”的怪现象;要么车开得有点慢,前车认定快,也想追上来,结局前面全是红灯。

这些微妙的人为因素,也就是所谓的“参数”,拍板了车能不能顺畅跑。 为了看得懂,咱们得把车流切成一个个小段。想象一下一条单行道,每隔十米标一个点。

这时候,每个点就不是一个静止的坐标,而是一个“状态”。

比方说,这个点目前是不是空着?

是不是有一辆车停着?这辆车的速度是不是五十?跟它后面那辆车挺不挺近?要是后面那辆车距离近,那它也得停下来,出于撞上去忒悬了。

这就变成了经典的“两车模型”,也就是那个传那会儿的理论:前面的车没动,后面的车务必停下;前面的车挪了个位置,后面的车也得跟着挪。你要是想让它挪个半米,那你得问清楚,它后面那辆车有没有跟上来?有,它就跟着;没有,它就得停下来,哪位也别想动。 一旦连着小段,这就成了连续的流。

这时候你就有了“密度”。密度如何算?好办的说,就是路上的车占了多少米。假设一条车道长一百米,里面挤进了一百二十辆车,那密度就是 1.2。密度大了,车就不好开;密度小了,车就空着。但现实更复杂。

有时候一辆大货车走了,它前面的小轿车瞬间就堵住了,就连可能出于前车突然变道要么突然停车,害得后面几辆车拥挤成一潭死水,密度瞬间飙升到了不可思议的地步。

这时候要是单纯看密度,你根本不知道到底是哪位害得了这种拥堵。 这就逼出了“小信号”理论。

这个概念听起来挺玄乎,但实际上就是告诉我们:当车道上的人极少时,大家都能开得挺慢,大家彼此之间挺客气,哪位也不急。但要是突然来了一个突发状况,比如一个急刹车要么一个突然加速的电动车,原本大家都在平稳开,那这一瞬间的扰动,会让整条路的车流全都跟着乱套。

这时候,哪怕只是挺小的参数变化,比如某个车道的通行本事突然下降了百分之十,整个系统的响应速度可能就不一样了。有的路段可能几分钟就堵死,有的可能只耽误二十分钟。 为了验证模型对不对,咱们得加个“人眼”进去。建了仿真模型,在电脑上跑出来一段视频,就让它播放。

这时候,你看拿到的就是计算机根据算法计算出的车流运动。你可能会发现,有时候电脑算的流和现实里的流像两拨人走在一起,一阵乱成一团。算法哪儿算错了,哪儿跟现实就差。

这种差距,恰恰是交通工程里最有趣的局部。出于人不像机器人,人有时候会故意走走停停,要么为了赶工夫不惜撞车。 当这段视频播放到后来,车流启动分化。有的车流变宽了,有的变窄了;有的车变快了,有的车变慢了。

这时候你再结合现场的真数据,比如 camera 拍到的车牌、摄像头识别出的速度、还有路口实时的车流量,就能够反推模型里的交通规则是不是改得不对,要么是不是某个路段的限速牌没贴好。

反过来,要是你发现模型里算出的密度比摄像头里测出的大,那肯定是有哪段路确实堵死了,只是模型没模型本身就能解释清楚,可能是特殊的车流组合,比如大回形针车要么施工车辆。 故此,交通流仿真压根儿不是一份完美的、一劳永逸的说明书。它更像是一个不断的迭代过程。你可能会在仿真里发现,同样的参数,在早高峰和晚高峰,效果彻底不一样。早高峰大家都在抢车,晚高峰大家可能在等人下地铁。

这时候你得去调整参数,要么转变对“距离”的定义,要么调整“加速度”的临界值,要么干脆改成“优先通行”的规则。 最终,你会发现,不管你在电脑屏幕前调了多少个滑块,只要理解了车流的根本逻辑,你就能解释大局部堵车现象。别看有时候还是会遇到那些让大脑短路的情况,但只要你愿意看着屏幕里的车流一点点蠕动,看着它如何从有序变成无序,再或许如何重新变得有序,你就能慢慢理解那个让人头疼但不得不研究的数学世界。

毕竟,城市里的每一辆行驶的车,最终都变成了一串数字,串起来,就是这张大地图上的轨迹。