运筹优化就业前景(运筹优化算法工程师现状)

科普推广运筹学一直以来是【运筹OR帷幄】平台的初衷。本次我们邀请到了平台优化板块的责编团队的成员,结合各自独特的业界工作体会,分享他们眼中在业界发光发热的运筹学。

一、元器件行业中的运筹学

本人在一家做元器件服务的公司实习,军用元器件使用的时候有两个典型场景:替代和统型。

替代是设计师针对进口元器件找到可替代的国产型号;统型是在一个产品的BOM内确定某几个不同元器件是否可以统一使用一种,以此减少元器件品种数。

目前行业内开始从依赖专家经验(比如知道某个国产元器件就是对标某个进口元器件做的),转向从元器件性能参数的相似度出发进行判断,所以涉及到相似度和聚类方法的应用。

相比方法本身,解决问题的更大阻碍是元器件性能参数数据的复杂性和不规范性。例如不同类别的元器件性能参数不同,即使在同一类别下,不同生厂商给出的性能参数形式也不同,对此进行规范需要有元器件专业知识,所以实际中,数据清洗往往耗费最多人力,也是影响方法使用效果的一大因素。

运筹优化就业前景(运筹优化算法工程师现状)

三、制造业中的运筹学

本人目前是某厂的算法工程师,参与过企业的排班,调度,决策优化等场景的项目,主要想结合自己的经历和大家分享一下运筹优化在企业中的一些应用,主要包括任务规划/排班和实时调度两个方面,围绕场景定义,方法论和实际中的困难三个点进行阐述。

任务规划/排班

场景定义

首先说一下什么是任务规划,什么是排班。任务规划是基于设定好的任务输入,进行任务的排期规划,以达到资源的有效利用和工作效率的提升。任务规划主要用于传统制造业/工厂排程,建筑工程规划排程,物流运输线路任务打包等场景。任务规划后输出给虚拟人或者其它虚拟资源创建的带有时间窗的任务包,排班则基于这些任务包,把它对应到实际的人或者其它真实车辆,机械等资源中,规划出某些资源在什么时候做什么任务的结果,以及该任务需要消耗多少其它资源。

方法论

主要的规划方法也是传统运筹优化使用的方法。首先了解真实的业务场景,抽象业务规则和约束,搭建数学模型,运用规划求解器(Cplex,Gurobi等)或者启发式算法(Local Search,Iterative Forward Search等以及各种变种)进行求解。启发式算法可以在现有的solver上进行基于不同场景的二次开发,也可以自行开发。业界一般采用第一种方式。

实际运用困难点

在实际场景中,给不同资源的排班会有很多实际因素要考虑。给人排班要考虑人的工作班次时长,人历史的上班习惯(如习惯上晚班,晚班后不能接早班),人所拥有的技能,个人的偏好(偏好某个工种或者上班时间段),法律规定以及不同工厂因为地域有不同的差异,如香港是8小时工作制,而大陆班次时长可以是10小时等。当我们处理实际问题的时候,先要梳理实际场景,总结管理规律,构建多种配置参数,进行建模。相比于排班来说,任务规划因为是针对虚拟资源而构建,所以可以不用考虑过多的资源属性(如人习惯)等因素。

实时调度

场景定义

基于实时数据输入,进行任务的整合和任务的分配。主要的场景有:O2O外卖即时配送,打车软件车辆实时调度,仓储叉车/AGV,分拣中心分拣机器人实时调度等场景。实时调度的场景主要集中于新业务,而非传统的制造业和实体企业。传统的制造业和实体企业骄傲于他们的规划,而前面场景定义所提到的一些新业务场景,无法采用有效地长期规划手段,更多地是依赖短期的预测和实时的规划调度。

方法论

上述提到的短期预测:如外卖下单到餐品完成的时间估计,车辆调度Supply和Demand的平衡,仓储/分拣中心的任务需求预测等,一般基于不同场景搭建机器学习模型,或者各种深度学习模型的Ensemble进行训练和预测。

实时的规划调度包括:如外卖下单后分给哪个外卖小哥,车辆订单来了分给哪辆车,任务需求来了分给哪辆叉车,AGV或者机器人。主要的方法有:

● 短时间压单后进行任务分配,以牺牲一定的最优性而换来快速高效地计算,采用传统并行的多个Tabu Search,Simulated Annealing等进行TSP或者VRP的计算。

● 强化学习/动态规划方法。用收集的数据和规则搭建仿真环境,用强化学习构建任务需求(订单或者生产入库需求等)与资源(车辆,外卖效果,叉车等)的匹配价值(Value),然后分配计算。

实际运用困难点

● 大规模订单/任务需求的计算,需要一定的计算资源支持,以及牺牲算法的优化性来实现快速计算。

● 实时数据的采集。有些数据无法直接有效地采集,比如真实商家做餐时间。

● 如果要搭建仿真环境,也需要了解和抽象实际的业务规则。

运筹优化就业前景(运筹优化算法工程师现状)

四、电商行业中的运筹学

本人目前在某电商供应链计划部门实习,该电商平台有八个事业部,每个事业部每天都有一定量级的产品上新、下架。目前平台上八大事业部的总商品数量量级是十万,对接不到2000家供应商。我所在职位的主要工作内容是,根据历史销量进行各个产品的需求量预测,由于产品发货渠道有商家自发货和平台发货两种渠道,选择平台发货的厂商需要结合产品的生产周期,并且按照与平台约定的补货周期将货物运到平台的自有仓库。

因此对于平台供应链计划部门来说,需要根据货物现有库存,结合日均销量预测(分大促日销和平常日销两种)实现补货量和补货时间点预测自动化,仓库效益最大化。将预测信息反馈到计划员和事业部同事进行产品调整。存在的难题有很多,比如对于新品的日销需求预测?长期在架产品的需求预测及库存管理实现效益最大化?当某产品的补货周期是一个月时,涵盖了大促时期和平销时期,如何库存管理和日销量预测,以实现仓库效益最大化,平台收益最大,且尽可能缩短断货时长?而这些都是运筹学和优化问题。

运筹优化就业前景(运筹优化算法工程师现状)

五、机器学习行业中的运筹学

本人最近在BAT(之一)的北美研究院实习,研究院本身的运作模式算是和本地业务团队稍有不同,成员多为国内外名校毕业的计算机、统计、数学、运筹学等专业的博士。除了写paper之外,团队也需要做能“落地”的业务支持项目(通常和国内的业务部门合作):如在线视频网站的推荐算法、二手商品平台的定价算法、新零售门店的多渠道库存控制算法等。

这些问题首先的一个共性是:海量的数据规模。这些问题对应的业务部门都有专门的数据团队,每天在公司内部的数据仓库会定时更新当日的数据(每日的数据量级都是上百TB)。因此,要在此基础之上,设计实用的优化算法,实际上对经典的运筹学模型和优化算法来说,也是巨大的挑战。

因此,在目前我注意到的这些业界的实际“优化”业务中,机器学习方法和运筹学模型基本上是要一起使用的。更具体的来说,业界更需要的是“数据驱动”的决策模型。比如,现有的机器学习、深度学习方法带给我们良好的预测模型,而所谓的决策模型/优化模型便往往可以基于这些预测模型之上。当然,最理想的状态是能够将预测和决策这两个看似分离的步骤结合起来,即,动态地基于预测调整决策,再通过现阶段的决策调整之后的预测。关于这点,目前学术界有了很多不错的理论,但距离工业界的实际“落地”还是有距离的。这或许便是业界当中机器学习和运筹学的未来吧。

(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论