← 最新论文
🤖 AI

Integrating Column Generation and Large Neighborhood Search for Bus Driver Scheduling with Complex Break Constraints

本文提出并评估了一种结合分支定价(B&P)与大邻域搜索(LNS)的混合算法,通过将 LNS 子问题生成的列存储并复用,有效解决了具有复杂休息约束的公交司机排班问题,并在不同规模实例上取得了优于现有方法的最新成果。

原作者: Lucas Kletzander, Tommaso Mannelli Mazzoli, Nysret Musliu, Pascal Van Hentenryck

发布于 2026-04-23
📖 1 分钟阅读☕ 轻松阅读

原作者: Lucas Kletzander, Tommaso Mannelli Mazzoli, Nysret Musliu, Pascal Van Hentenryck

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇文章讲述了一个关于如何给公交车司机排班的复杂数学问题,以及作者们如何发明了一套“超级排班系统”来解决它。

想象一下,你是一家大型公交公司的“排班经理”。你的任务非常艰巨:

  1. 任务:要把几十甚至几百条公交路线(就像一个个拼图块)分配给司机。
  2. 规则:法律和公司规定非常严格。司机不能连续开太久,中间必须休息,休息多久算“带薪”还是“ unpaid"( unpaid 休息)都有讲究,甚至休息的时间点不同,算的钱也不一样。
  3. 目标:既要让公司省钱(少用司机、少换车),又要让司机开心(少加班、少换车、休息合理)。

这就好比你要用乐高积木搭出一座完美的城堡,但每一块积木都有奇怪的形状,而且你必须遵守“不能把红色积木放在蓝色积木上面”这种复杂的规则。

这篇论文就是作者们如何设计了两套“魔法工具”,并把它们完美结合起来,搭出了最完美的城堡。

1. 两个核心工具:精算师 vs. 装修大师

作者用了两种主要方法来解决问题:

工具 A:分支定价法 (Branch and Price) —— 像“精算师”

  • 它是怎么工作的:这就好比一个极其严谨的精算师。他会把所有可能的排班方案(哪怕是一亿种)都列出来,然后像剥洋葱一样,一层一层地排除掉不可能的方案,直到找到那个绝对最优的解。
  • 优点:对于小公司(比如只有 10 条路线),他能算出完美无缺的方案,告诉你“这就是全世界最好的排班,没有之一”。
  • 缺点:如果路线太多(比如 200 条),这个精算师就会算到电脑冒烟,时间太长,根本算不完。

工具 B:大邻域搜索 (LNS) —— 像“装修大师”

  • 它是怎么工作的:这就像一位装修大师。他先随便搭一个大概的城堡(初始方案),然后说:“哎呀,这几块积木搭得不好,拆掉!”(破坏阶段)。拆掉后,他再重新找最好的积木填进去(修复阶段)。
  • 修复阶段:这里有个绝招,他请来了刚才那位“精算师”来帮忙填积木。因为拆掉的一小部分(比如 10 条路线)对精算师来说很简单,精算师能瞬间算出这部分的最优解。
  • 优点:对于大公司(几百条路线),装修大师跑得非常快,而且能不断把城堡修得越来越好。
  • 缺点:他不能保证找到“绝对完美”的解,只能保证“非常接近完美”。

2. 最大的创新:让“精算师”和“装修大师”握手言和

以前的做法是:装修大师拆完,把问题扔给精算师,精算师算完给个答案,然后把精算师脑子里记住的所有经验都清空,下次再拆另一部分时,精算师又要从头开始算。

这篇论文的突破在于:他们让精算师“记住”了经验!

作者设计了一种**“记忆共享”**机制:

  1. 积累宝藏:当精算师在修复某一部分时,他算出了很多种不错的排班方案(这些方案被称为“列”)。以前这些方案算完就扔了。现在,作者把这些方案存进一个公共宝库里。
  2. ** reuse(复用)**:下次装修大师再拆另一部分时,他不需要让精算师从头算,而是直接问:“宝库里有现成的好方案吗?”如果有,直接拿来用!这大大加快了速度。
  3. 后台助手:作者还安排了一个**“后台助手”**(后台线程)。当装修大师在前面忙得热火朝天时,后台助手就拿着宝库里的所有方案,在后台不停地尝试拼凑出更好的整体方案。一旦后台拼出了更好的,就立刻替换掉前面的方案。

3. 结果如何?

  • 小公司:直接用“精算师”(分支定价法),几秒钟就能算出完美答案。
  • 中等规模公司:用“装修大师 + 记忆共享 + 后台助手”的组合拳,效果最好。他们发现,把精算师算出的所有经验都存下来,并让后台助手在拼命拼凑,能产生惊人的效果。
  • 大公司:这种组合拳依然能给出非常高质量的方案,比以前的任何方法都要好。

4. 总结:这不仅仅是排班

这就好比你在玩一个超级复杂的拼图游戏:

  • 以前,大家要么死磕到底(算太慢),要么随便拼拼(质量差)。
  • 现在,作者发明了一种**“智能拼图法”**:
    • 遇到小块,用超级大脑(精算师)直接算出完美解。
    • 遇到大块,用灵活的双手(装修大师)不断尝试。
    • 最关键的是,他们建立了一个**“共享知识库”,让每一次尝试的经验都能被下一次尝试利用,并且有个“幕后推手”**在不停地把所有碎片拼得更好。

最终结论:这套方法不仅解决了公交车司机的排班难题,让公司省钱、司机开心,而且这种“精算 + 搜索 + 记忆共享”的思路,可以用来解决任何复杂的排班问题(比如医院护士排班、工厂工人调度等)。这就是为什么这篇文章被称为该领域的“新标杆”(State-of-the-art)。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →