十字路口的选择#
最简单的模型#
假设城市的道路只有东南西北走向,起点与终点的方向固定。那么从起点到终点的所有最短路径长度都等于 1-范数,转过的角度必为 { 0, 左90, 右90 } 之一。
考虑所有红绿灯的计时是独立同分布。假设右转一直可行,直行与左转持续时间相同,为四分之一个周期。那么假设路上的左转数为 x,直行数为 y,右转数为 z,总共转过角度 p = 0/1/-1 for { 0, +90, -90 },总共经过路口数 n 一定。有小学二年级的方程
是一组不定方程。C(1, -2, 1)T 是齐次方程的通解。我们希望总共的等待时间 \(T = x + y\) 最小,就是希望 z 最大,x 最大,y 最小,得到一个显然但不是那么有用的结论:我们应该优先选择左转或右转,尽量减少直行。
过于理想化的因素#
然而城市的道路不总是四四方方,不同道路的容量、流量、路况各不相同,不同转向的绿灯持续时间、转向消耗时间、危险性等各不相同,何况红绿灯间未必独立,也未必同规律。因此在路面上常出现以下几种情况。
绿波带#
假设车辆行驶速度一定,那么我们就可以通过控制直行道路上前后两个红灯的相位差,来使得一直直行的车辆不用等待红灯。再假设道路是四方等边长的,于是可以在每两个相邻十字路口都实现同样的事情。如此一来,直行的期望等待时间下降到了 0,两个直行的策略优于一个左转加一个右转。
另一方面,在作者的臆想中,转弯的事故率总是大于直行。
改变右转的等待时间#
然而在前两天作者出门时,突然发现门口的红绿灯的右转灯规律发生了变化。原本的右转灯仅在其他转向灯情况变换时短暂地变为红灯,而现在则是在直行绿灯亮前始终保持红灯。如此一来,直行的等待时间也就不大于转弯了。不知这么设定是否也是基于安全考虑。
另一种红绿灯策略#
作者去其他城市游玩时还见到过一种其他的红绿灯方式:四个方向依次开始通行,转弯和直行同时绿灯。这么做的好处或许是节约车道?
红绿灯的持续时间#
由于某方向绿灯的时间占比是一定的,所以理论上绿灯时间只要能保证积累的车辆完全驶过路口即可。而行人一般比车辆要慢,这应该就是为何直行绿灯时间一般恰为行人过街时间。
除此之外,还有行人过街红绿灯分段等问题。考虑到篇幅已经超出预算,在此就不讨论了。