
在咨询公司给很多不同行业用基于运筹学的技术做过各种解决方案。分享几个有代表性的例子:
石油公司钻井船工程师调度
钻井船上的工程师团队需要共同处理复杂的技术问题,包括科学钻探、采油、修井、船体维护等等。除了不同的技术工种各自术业有专攻之外,有些复杂任务需要不同工种协作完成。另外,很多复杂机械设备也有使用限制,比如不能多人同时使用、或者一天使用累积时间不能超过8个小时等。综合这些复杂因素,一个优化的调度机制就显得极其重要,可以让工程师的效率最大化,同时最大程度降低生产事故的可能性。
这里部署的解决方案就是用运筹学中的车间调度问题(Job Shop Scheduling)为框架建模。
工业电池公司供应链
工业电池制造过程中的一个商业难点是:多少原材料应该直接买,而多少材料应该靠回收废电池循环利用。一般情况下回收电池成本很低,但是取决于不同的加工技术,循环利用率(即从废电池中提炼出来的可使用原料占比)各不相同,成本也有差异。所以整个供应链网络需要综合考虑所有成本(采购、提炼、运输、存储),进而做出最优的供应链选择——在哪里买多少原材料、从哪里回收多少废电池、分别运送到哪些地方进行进一步处理、甚至包括送货到下游零售商家的时候顺便带多少废电池回来。
这里部署的解决方案是求解一个运筹学中的网络优化问题(Network Flow Problem)。
汽车4S店款式配置
买车的顾客希望走进4S店的时候各种款式齐全,卖家也希望你看中一款之后直接提走,等得越久变数越大。然而4S店空间有限,不可能做到车库里每款都有。所以在各个门店分别配置什么款式、各自配置多少就是一个复杂的决策。在大农村地区的门店就要多放些卡车;都市区的门店可能就要多些混合动力的款式。另外即便是同一款车,还要考虑到颜色、尺寸、附加选项的多样性。
这里有很大一部分决策需要基于需求预测,同时真正执行的时候也可以通过运筹学中的背包问题(Knapsack Problem)建模,来决定怎样给每家店进行款式配置,使得在空间和成本限制范围内最大化预期收益。
主题游乐公园季节性员工招募与调配
季节性是运营主题公园的重要因素:大部分高峰期集中在暑假和节假日。因此,很多主题公园的员工构成中有很大一部分是季节性临时员工,便于应对极具弹性、迅速变化的入园顾客数量。那么在每个忙季,需要招多少临时工、分别分配到什么岗位?这里主题公园既要考虑到短期直接收益(比如园区里的各个零食小摊都要有足够人手来保障餐饮营收),也要考虑到长期收益(需要有足够人力来疏导排队、减少排队时间,提高游客满意度),还要考虑到临时工的个人情况(比如能否操作复杂设施、工作时长限制)。
综合各方因素,可以使用运筹学做出最优决策。这里部署的解决方案是先用一个混合整数规划模型(Mixed Integer Programming / MIP)构建最优的人力方案,再求解一个排班问题(Scheduling Problem)将具体工作分配到每个员工。
很多时候运筹学的技术可以提供一个解决问题的框架,接着具体问题需要具体分析,设计对应的定制化解决方案。我们在学运筹学的时候可能觉得背包问题很简单易懂,似乎也没什么了不起。但在实际应用中,其实有很多问题的解决思路都可以基于背包问题。善用运筹学的框架,而不是拘泥于具体技术实施细节或者这项技术本身是不是听起来高大上,有助于在各种实际工作中更广泛地用到运筹学。