在电车上打瞌提的时候,你有没有想过一件事:为什么时刻表能精确到「7:23:40 发车」这种秒级 granularity,而且真的能做到?
日本铁路圈流传着各种都市传说:某线路因为提前 20 秒发车而公开道歉、乘务员被要求用秒表卡站台作业时间……传说的细节未必都属实,但「准点到秒」这件事本身,确实不是靠乘务员手速堆出来的,而是靠**运筹学(Operations Research)**在背后硬算出来的。
这篇文章就聊聊:一张时刻表背后,到底藏着多少数学。
一、时刻表不是「排」出来的,是「解」出来的
把时刻表问题抽象一下,其实非常像一个约束系统:
- 每一班车在每一个站的「到达」和「出发」都是一个事件,各有一个待定时刻;
- 事件之间有大量硬约束:最小停站时间、最小追踪间隔(同一条轨道上前后两班车不能太近)、运行时分、跨线换乘衔接……
- 目标:让旅客等待时间最短、换乘衔接最顺、或者公司成本最低。
对于周期性运行的线路(比如「每小时一班的模式无限重复」),这个问题有一个经典形式化:周期事件调度问题(PESP),由 Serafini 和 Ukovich 在 1989 年提出。它把每个事件时刻对周期取模,把所有约束写成事件差在模意义下的区间限制——本质上是一个整数规划问题。
PESP 的表达能力惊人地强:不只是单线时刻表,连车辆交路、乘务排班衔接、最小折返时间这些「铁路人才懂」的细节都能塞进同一个模型里。Liebchen 和 Möhring 有一篇专门讲这件事的论文,标题就叫「PESP 的建模能力:铁路时刻表及更多」[Liebchen & Möhring, 2007]。
这套方法不只是学术玩具:2005 年,柏林的城市轨道交通系统用 PESP 优化出的时刻表上线运营,被认为是**第一个真正投入实践的数学优化时刻表**——在没有增加一辆车、一寸轨道的前提下,仅仅重排时刻,就改善了换乘衔接和旅行时间。
二、「准点」的真正敌人:延误传播
如果世界是理想的,时刻表排好就万事大吉。现实是:一位乘客卡在车门上 10 秒,这 10 秒就可能沿着「这班车晚点 → 下一站多停 → 影响后续班次」的链条滚雪球。这叫延误传播(delay propagation)。
所以现代时刻表设计的核心思路是:与其追求纸面上的紧凑漂亮,不如追求鲁棒(robust)。Cacchiani 和 Toth 的综述系统总结了这方面的进展:通过在时刻表里合理分配缓冲时间(buffer time),让小延误在传播过程中被逐步吸收,而不是被放大[Cacchiani & Toth, 2012]。
直觉上这有点反直觉——把缓冲时间「均匀撒」进每一站,而不是全部堆在终点站,往往吸收延误的效果更好。紧凑的时刻表纸面效率 100%,但一次小事故就能全线崩盘;鲁棒的时刻表看起来「松」,实际送达的准点率反而高。留白也是一种工程。
三、列车晚点了,「等不等」是个 NP-hard 问题
延误已经发生时,调度员面临一个经典决策:一班车晚点了,它后面的换乘班车要不要等它?
- 等:晚点车上的乘客赶上了换乘,但换乘车上的所有乘客跟着晚;
- 不等:换乘车准点,但晚点车上的乘客错过换乘,可能要再等几十分钟。
这个看似简单的决策,被形式化为延误管理问题(delay management)。Schöbel 在 2001 年把它写成了混合整数规划模型[Schöbel, 2001],目标是最小化全网所有乘客的总延误。
坏消息是:如果允许乘客根据「等不等」的决策动态改变自己的路线,这个问题是 NP-complete 的[Gatto et al., 2004]。也就是说,你每天早上赶车时抱怨的那几秒钟决策,理论上是和旅行商问题一个难度级别的。Dollevoet 等人后来把延误传播与延误管理的模型和算法做了系统的整理[Dollevoet et al., 2018]——现实中的调度系统,是在秒级时间里求这些模型的近似最优解。
四、实战案例:荷兰铁路的「OR 革命」
讲一个真实发生的大案例。2006 年 12 月,荷兰铁路(Nederlandse Spoorwegen)上线了一套完全从零重排的全国时刻表:约 5500 班每日列车,用运筹学模型整体优化了时刻表、车辆交路和乘务排班。
结果?同样的基础设施上跑更多的车、载更多的客,列车准点率达到历史最好水平,并为公司带来每年约 4000 万欧元的额外利润。这支团队后来详细复盘了整个过程[Kroon et al., 2009]——是运筹学落地铁路的教科书级案例。
这也解释了为什么欧洲的铁路研究界(荷兰、德国、意大利、瑞士)在这个领域论文产出如此密集:时刻表优化是实打实能变成钱和准点率的。
五、那日本为什么还是独一档?
理论上大家都懂 PESP,为什么日本的准点还是显得格外夸张?综合公开资料,大概有这么几个非数学因素:
- 冗余藏在运营里:站务员的站台作业被标准化到秒级,车门开关、清点、发车信号都有固定动线——这相当于把「缓冲时间」从时刻表下沉到了人的动作里;
- 线网结构:大城市圈的复复线(多条平行轨道按速度等级分工)让快慢车互不干扰,延误不容易跨线传播;
- 需求侧共识:错峰通勤文化降低了尖峰满员率,而满员率恰恰是「有人卡车门 → 停站超时 → 延误」这条传播链的起点;
- 统计口径与运营纪律:日本铁路公司内部对延误的分秒级记录和复盘文化,本身就在持续给鲁棒时刻表的参数校准提供数据。
换句话说:数学给出的是「骨架」(一份理论上抗揍的时刻表),运营纪律给出的是「肌肉」。两者缺一,准点率都到不了独一档。
结语
下次在电车车厢里发呆的时候(比如封面这样),可以想一想:脚下这张纸质时刻表,其实是一张巨大整数规划问题的一组最优解;它晚点的每一分钟,都在被一整套延误管理模型实时地权衡着;而「要不要等那班车」这个决定,难度上和旅行商问题是一个级别的。
铁路大概是普通人离运筹学最近的场景之一。它不发光,不出现在热搜上,但每天把几百万人分秒不差地送到目的地。
参考文献
- Serafini, P., & Ukovich, W. (1989). A mathematical model for periodic scheduling problems. SIAM Journal on Discrete Mathematics, 2(4), 550–581. https://doi.org/10.1137/0402049
- Liebchen, C., & Möhring, R. H. (2007). The modeling power of the periodic event scheduling problem: Railway timetables — and beyond. In Algorithmic Methods for Railway Optimization (LNCS 4359, pp. 3–40). Springer. https://doi.org/10.1007/978-3-540-74247-0_1
- Liebchen, C. (2008). The first optimized railway timetable in practice. Transportation Science, 42(4), 420–435. https://doi.org/10.1287/trsc.1080.0240
- Cacchiani, V., & Toth, P. (2012). Nominal and robust train timetabling problems. European Journal of Operational Research, 219(3), 727–737. https://doi.org/10.1016/j.ejor.2011.11.003
- Schöbel, A. (2001). A model for the delay management problem based on mixed-integer programming. Electronic Notes in Theoretical Computer Science, 50(1), 1–10. https://doi.org/10.1016/S1571-0661(04)00160-4
- Gatto, M., Glaus, B., Jacob, R., Peeters, L., & Widmayer, P. (2004). Railway delay management: Exploring its algorithmic complexity. In SWAT 2004 (LNCS 3111, pp. 199–211). Springer. https://doi.org/10.1007/978-3-540-27810-8_18
- Dollevoet, T., Huisman, D., Schmidt, M., & Schöbel, A. (2018). Delay propagation and delay management in transportation networks. In Handbook of Optimization in the Railway Industry. Springer. https://doi.org/10.1007/978-3-319-72153-8_13
- Kroon, L., Huisman, D., Abbink, E., Fioole, P.-J., Fischetti, M., Maróti, G., Schrijver, A., Steenbeek, A., & Ybema, R. (2009). The new Dutch timetable: The OR revolution. Interfaces, 39(1), 6–17. https://doi.org/10.1287/inte.1080.0409
