

【初稿】为什么你感觉公交车总是要等?Waiting Time Paradox
©️ Copyright 2023 @ Authors
作者:
liutao@dp.tech 📨
日期:2023-07-09
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 bohrium-notebook:2023-05-31镜像 和任意配置机型即可开始。
想象如下情景:
- 情景一:你在赶地铁,一顿操作后,成功在关门前一刻赶上了每6分钟一班的2号线。
- 情景二:你想看看市容,于是决定坐公交,算好了时间走到公交站台,结果发现每10分钟一班的10路车晚点了,等着等着发现这趟车被取消了,结果你等了足足10分钟。
经常坐公交车的朋友也许和我有类似的感觉:坐公交车似乎总是要在站台上等一阵子。无论是因为提前太早到,还是因为卡着点到站台发现公交车早到了半分钟,刚刚扬长而去。有时候晚点的公交车会直接从手机导航APP上消失,于是“哦,公交车晚了3分钟”变成了“得,直接等下一班吧”。我第一次想这个问题的时候,以为公交车的时间间隔是经过深思熟虑后确定的,特别是考虑了当地的交通拥堵状况,最终确定了一个相较之下比较长的时间间隔(比如10分钟)从而让乘客更加容易接受“等待下一班”的可能性。毕竟嘛,来都来了。
其实仔细一想,为什么地铁和公交的乘坐会有这样的差异体验呢?地铁和公交有啥本质的区别吗?显然不是有些公交车能开窗,而地铁是个闷罐子哈哈。是的,你可能已经想到了:地铁线上没有堵车,因此(几乎)不会晚点或取消。因此说是每6分钟一班,实际(几乎)就是每6分钟一班。均等的时间间隔,依次沿着时间轴排开:
而公交车,受限于地面交通的各种复杂情况(修路、堵车等等),其时刻表的不确定性更大。说是每10分钟一班,实际可能是前后两班隔了20分钟,或者是“你方唱罢我登场”般的前脚跟后脚:
甚至极端特殊情况下,整整一天只来了两班:早晨第一班车和晚上最后一班车。原因可能是有个活动开了一天,路给封了。
有个东西叫泊松过程(Poisson Process)
公交车的计划时刻表是经过某个固定时长后,预期会有一辆车,但实际有不确定性。换句话说,某件事在一段时间内以恒定的概率发生,但是实际发生的时刻是随机的。这个过程可以用统计学里的泊松过程来近似(泊松过程要求事件的发生是相互独立的,而严格来说前后两辆公交车的到达时刻并不完全独立)。在泊松过程里,如果此随机变量在一段区间内的每个点都以同等概率出现,比如这里的公交车到达时刻,那么这个变量连续两次所取的值之间的差则符合指数分布,比如这里的前后两辆公交车之间的间隔。接下来,我们一起通过模拟来看看这个公交车等待时间的问题。在文末笔者还准备了一个可交互式的界面,所以要看到最后哇 :)
Sanity check: the following two values should be close: (1) Time interval between scheduled bus arrivals (tau): 10.00 minutes (2) Average time interval between two bus arrivals from simulation: 10.00 minutes
模型给出的平均到达间隔和模型参数相等,耶,可以继续下去。接下来,我们将在公交车的实际到达时刻下,模拟乘客们的等待时长。
有了上了车的乘客们的等待时间waiting time
,我们可以算出全部乘客的平均等待时间
Average waiting time for all passengers: 10.15 minutes
是的,可以发现,乘客们的平均等待时间非常接近公交车时刻表上显示的公交车到达间隔(tau
)

上图是公交车的实际到达间隔。如泊松过程描述的一样,公交车的实际到达间隔近似指数分布。这里可以细说一下影响乘客平均等待时间的“两股力量”:
- 如果前后两班车间隔了很远,那么车站上的积累的乘客很多(不考虑上下班高峰期,乘客们被假设在不同时刻以同等概率出现),而且他们都等了很长时间。不过出现这样长间隔的概率很小(如上图)。因此他们的“长”等待时间不会过分影响”平均等待时间“。
- 相反的,如果前后两班车间隔很短,那么每个在此间隔内上车的乘客都只等了一点点时间。但是这样的幸运乘客并不多,因为此间隔很短。因此他们的“短”等待时间也不会过分影响”平均等待时间“。
最终的平均等待时间是“公交车到达间隔”和“出现此间隔的概率”两股力量博弈的结果。

我们可以看到,不同的乘客等待了不同时长,有些乘客等了很久很久,超过了一小时。这是因为他们不幸运地碰上了两班相隔很远公交车。
根据指数函数的公式,我们可以算出平均等待时间。巧合的是,平均等待时间和平均到达时间间隔是一样的 :)这意味着,如果你经常坐那趟公交车,你预计需要等10分钟,无论你是提前很多去,还是卡着点去。
所以下次如果赶时间,并且出于某些原因打算坐公交 ,比如看市容,建议不要极限操作 :) 当然,笔者觉得最好的办法是有B方案,比如如果公交车没来,那就去附近的地铁站吧,市容可以改天看。再说了,都在赶时间了,还要什么自行车…不,还看什么市容 ;)
最后的最后,试试这个可交互的界面的吧!
更多阅读






Roger
flyingdwarf
MileAway