最近做项目的过程中发现, 甲方使用的系统里据说调用了 Quintiq 的优化算法, 但是甲方表示这个算法求出来的结果完全不能用, 于是这个功能长期处于闲置状态.
突然想起之前听说中石油中石化都买了 Aspen 的系统, 但是成品油配送基本上也没用系统自带的算法, 还是在由调度员人工调度.
此外, 还听说上海交大的某教授二十年前刚从国外回来的时候, 去找东航说要帮他们做航线规划的算法, 结果东航说就那么点飞机, 人调度就够了, 不需要什么算法.

如果上面的几个故事是普遍现象的话, 那么欧美工业界的成功案例在国内确实是水土不服.
但是受限于个人眼界的狭窄, 以及获取信息的渠道有限, 上面的见闻既不可靠, 也不能反映整体情况.
工业界到底有怎样的内幕是不得而知了, 不过也许从学术界的研究中可以看出些端倪.
下面将以几个经典的问题为例, 对比一下学术论文中研究的问题和在国内遇到的实际情况.

停机位分配

  • 机位初始分配
    • 欧美一般是在近机位上下客, 如果过站时间较长可能会中途把飞机拖到远机位起飞前又拖回近机位
    • 国内一般是不调整停机位, 近机位停满了就停到远机位, 用摆渡车把乘客拉到远机位登机
  • 发生延误时的机位调整
    • 欧美一般不变更停机位, 后继航班在空中或滑行道上等待
    • 国内一般是直接将后继航班分配至同区域的近机位或远机位, 并通知乘客变更登机门

国内似乎是人跟着飞机跑, 而欧美似乎是飞机围着人转.

当然, 欧美也是个很大的概念, 包含了太多国家和地区, 不能一概而论.
而且论文作者也不见得和机场有深入的沟通, 研究的问题也许只是假想的应用场景.

排课表

  • 选修课
    • 欧美一般是学生先根据自己的兴趣选课, 由选课系统来确定课程的时间地点以最小化学生不同课程之间的时间冲突
    • 国内一般是选课系统提前把每门课的时间地点确定好, 由学生选择想上哪些课程时自行解决时间冲突
  • 必修课
    • 欧美一般是根据课时需求统一规划上课时间和教室分配
    • 国内一般是先排好校级公共课时间, 然后各学院分别确定专业课时间, 最后汇总协调教室分配

在选修课方面, 国内是非常具有中国特色的超大规模人肉并行计算, 而欧美则相对自由一点 (当然, 每个课堂还是有的容量限制, 不可能完全做到根据兴趣选课).
而必修课方面, 国内采用的是分而治之的方案, 后期需要花费较多精力在各学院之间协调, 而欧美直接从全局的角度考虑, 对算法性能要求很高.

护士排班

  • 欧美一般是提前提出上班时间的偏好, 然后排班系统在考虑特殊需求的情况下均衡总工作量和工作强度等指标
  • 国内一般是按照简单的规则排出很规整的排班表, 如果有特殊情况需要调整上班时间自行跟其他人协商调班

国内的医护人员往往十分紧缺, 相对来说都是全职全能型的, 不像欧美有那么多余地可以选择不同的合同.
正因为大家的职能差别不大, 所以复杂的排班算法确实没有用武之地, 调度来调度去并没有太大差别.
而有特殊情况时私下跟他人协商临时调班也是一种人肉并行计算, 既然统一规划众口难调, 那就大家各管各饱.