• 回答数

    5

  • 浏览数

    123

Hello糖咖啡
首页 > 化工工程师 > 运筹学算法优化工程师

5个回答 默认排序
  • 默认排序
  • 按时间排序

凯凯妞妞

已采纳

运筹学专业毕业可以当运筹优化算法工程师。运筹学专业,是现代管理学的一门重要专业基础课。它是20世纪30年代初发展起来的一门新兴学科,其主要目的是在决策时为管理人员提供科学依据,实现有效管理,负责生产物流线路、排产数据的建模、优化和提升;基于数据和真实需求,对业务问题进行定义、分析、方案制定及相关算法实施;利用数据挖掘、运筹与机器学习相关算法,对生产物流相关各环节涉及的实际业务需求进行分析建模并持续优化相关模型;灵活结合运筹学/机器学习及其他智能算法,为核心业务问题提供智能化解决方案。

160 评论

肖小月半仔

工程管理硕士(Master of Engineering Management,简称MEM)是2010由中国工程院提议,委托清华大学进行学科论证,同年批复新设置的一种专业学位。其目的是适应我国现代工程事业发展对工程管理人才的迫切需求,完善工程管理人才培养体系,创新工程管理人才培养模式,提高我国工程管理的人才质量。工程管理是针对工程实践而进行的决策、计划、组织、指挥、协调与控制。包括:重大工程建设项目决策的技术经济论证和实施中的管理;重要复杂的新产品、设备、装备在开发、制造、生产过程中的管理;技术创新、技术改造、转型、转轨、与国际接轨的管理;产业、工程和科技的重大布局与发展战略的研究与管理等。随着现代工程出现了规模巨大、决策流程复杂、涉及技术种类众多、组织结构庞大、历时漫长、参与人员众多等趋势。工程管理在现代工程中的重要性使得工程管理人员在现代工程实践中扮演着越来越重要的角色。培养方向工程管理硕士研究生的培养注重向学生提供对核心管理领域知识的理解,如市场、会计、组织行为、商业道德、法律及金融等;注重向学生提供对内在的和共同的管理知识的理解,如系统工程、全面质量管理、生产管理、产品设计和过程设计管理等;注重向学生提供不同管理层面管理工程功能所需的知识和技巧;注重向学生提供在实际工程项目或问题中将技术和管理进行集成的经验。

286 评论

南瓜囡囡

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

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

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

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

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

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

二、电力行业中的运筹学

本人领域是电力系统最优化,可能大家没有察觉,但是现在中国的电力网络毫无争议的走在了世界的最前沿。强如美国,最近也又一次出现了大规模停电问题。(上次是1977年加州大停电)这次美国的停电持续了25个小时,约至少4万人受到了影响,经济损失至少3000万美金以上。但是中国自从普及用电后,从没发生过如此大规模的停电问题。除了电力人的辛勤奋斗外,这也离不开运筹学在电力系统中的应用。

众所周知,我们现在的电力网是交流输电网络。交流输电网络中的参数远比直流输电网络要复杂得多。最明显的不同,在交流网络中我们需要处理线路的有功功率无功功率。除此之外,线路的损耗、输电节点的电压和相角也是我们需要考虑的因素。为了保证整个电力系统的损耗最小,我们需要建立相关的数学模型进行分析计算,然后再由调度中心进行调控。但是实际问题的复杂程度远远超乎想象,单一个最优潮流问题就是一个大规模非凸非线性的问题。为了求解这类问题,相关学者提出了诸多算法和理论。诸如:半正定规划、现代内点法、凸松弛技术,模型近似技术等。这些理论已经发展了数十年,但即便如此,也没有一套成熟的理论被应用到实际中。

在电力网中,我们不单要考虑线路损耗的降低,更重要的是要保证供电的可靠性。我们常常需要提前一天或数天对电力系统进行调度安排,这类问题往往是一个多层优化问题,对于这类问题,我们常见的求解办法是Benders分解和列生成。除此之外,我们需要不定期对线路检修,发电厂的维护,而线路的通断、发电厂的启停在数学模型中又成了一个整数规划问题。整体的求解难度又上升了一个层次。另外,在国家大规模倡导新能源接入的今天,风电和光伏电站不断被接入电力网络中,而新能源不能得到普及的一个重要因素是我们不能准确预知新能源电厂在下一时刻能够发出多少电能供我们使用。为了分析这类问题,我们的模型在混合整数非线性规划上又需要考虑不确定因素带来的影响。对这类问题的求解,我们又提出了随机规划、鲁棒优化、分布鲁棒等。还有一点,我们的输电线路可能会由于雷击、树枝接触等导致出现输送功率出现扰动。系统中的这些小扰动可能会对用户供电的电压和频率产生波动,对于普通家庭来说可能影响不大,但是对于一些高精技术的产业,一次电压或频率的波动就可能导致整个生产线的崩溃。如何建立相关的数学优化模型来预防这一问题也是当前的研究热点之一。

最后,大家也十分熟知我们国家有一个西电东送的工程,这也是我认为最困难的一个点,我们国家的电力网络是连在一起的,是一个十分庞大且复杂的系统,而我们电力网络是时时波动的,我们需要在秒级做出优化,并给出方案。目前针对这种超大规模的含不确定性的多层混合整数非线性规划问题,我们没有办法在有限的时间内得到一个最优解。

但即便困难重重,在一线的电力工作者仍在尽自己最大的努力来保证电力网络的安全可靠运行,为中国电力点赞。

三、制造业中的运筹学

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

1、任务规划/排班

(1)场景定义

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

(2)方法论

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

(3)实际运用困难点

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

2、实时调度

(1)场景定义

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

(2)方法论

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

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

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

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

(3)实际运用困难点

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

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

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

3、关于运筹学在业界应用的思考

我在某公司实习了三个月,主要做的是生产计划。生产计划也是属于供应链的一个环节,与调度相比生产计划的制定要更加宏观一些。生产计划就是决策什么时间,在哪家厂/哪条生产线上,加工多少工件。生产计划的问题广泛的存在于制造业中,举个例子就是是手机的制造,一部手机有上千个零件构成,每个零件都在指定的供应商处生产,例如手机屏幕,手机摄像头,手机电池,手机充电器每个零件都由不同的生产厂来生产,然后将这些零件运送到最终的组装厂拼装成一台成品的手机。如何合理的安排每个厂在什么时候该生产多少零件是一个需要决策的重要问题。这个问题的核心在于要考虑尽量满足订单的需求要降低库存水位(或者是库存的周转率),同时要考虑到物料的约束,产能的约束,运输的约束等等因素。

在小规模的排产问题中人工调度员还能应对,一旦生产规模变大,生产工艺复杂之后,人工调度的弊病会逐渐凸显出来。目前国内有意识去做供应链的决策模型与算法的并不多,据我所知其中比较有代表性的是杉数科技。

杉数科技智能计划排程系统致力于为制造业及其上下游产业提供全链条技术服务,利用运筹学与机器学习将实际问题转化为数学模型求解,实现最优化的排程。个人认为,杉数科技在运筹学应用于制造业领域做了很好的探索,在很大程度上解决了如何用更少的人,更短的时间,生产更多的产品问题。

上面提到的生产计划问题本质上是一个混合整数规划问题,零件的个数就是一个整数变量,而生产这些零件的物料可能是整数的也可能是连续变量,因此该问题构成了一个混合整数规划问题。解决方案无非以下两种:

● 采用经典的混合整数规划的方法,先对原混合整数规划进行分解和重新建模,例如拉格朗日松弛,Benders 分解或者列生成等等方法,子问题的求解可以采用Gurobi或Cplex这些商用求解器。

● 针对问题特性设计元启发式算法,启发式算法。

实际运用困难点

我想谈谈混合整数规划在业界应用的gap到底在哪里,当然说大一点的话也是探讨运筹学在业应用的gap。

(1 )实际应用问题往往是大规模的

实际的生产问题往往是大规模的,例如我实习时所面临的实际问题其决策变量维数都达到上亿级别,业务部门要求是2小时之内给出结果,这对算法的效率实际上提出了非常大的挑战。即使是求解上亿规模的线性规划问题耗时都比较巨大,更不用说是整数规划问题了。我们经常说线性规划简单,哈哈,但是从实际应用的角度来看目前求解线性规划的速度在一些场景上还是不能满足我们实际应用的需求的。

目前在学术界大家很多情况下都是在小规模问题上自娱自乐玩一下,所以真正在公司的话,大规模的问题非常非常普遍。举个例子就是读运筹学的PhD的时候是学会在游泳池里游泳,真正在公司里边面对的问题可能就是得在大海里边游。这其实还是比较好的状况,更差的情况是一些童鞋可能在学校里只是学会了在浴缸里游泳而已。

(2) 实际数据往往都是病态的

实际问题的数据往往都是病态的,例如我在公司遇到的问题就是病态问题,具体来说就是优化问题约束或者目标函数的系数数量级的差别过大,导致求解过程的病态,实际问题的数据往往是千差万别和稀奇古怪的,数量级的差异经常超过10E20以上。这一点在学术界研究的相对较少一点,因为学术界研究的问题都比较理想化,即使有从实际中抽象一些原型出来,但是已经把病态啊这些问题都基本过滤掉了,但是在实际中你就发现病态问题太多了。

(3) 业务人员没有优化的意识,运筹优化的人缺乏业务知识,沟通成本非常高

业务人员没有优化的意识,很多时候他们不清楚运筹优化能做什么,甚至当运筹优化的算法工程师问题业务人员你们有什么要求没(约束条件),你们有什么量化的指标要越大越好或者越小越好(目标函数),业务人员很多时候也不能很清晰量化的描述出来这些东西,还有很多时候业务人员嘴巴上告诉你的目标函数和心里想的不一致。就相当于你是一个大厨,什么线性规划,拉格朗日松弛,列生成,半定规划,鲁棒优化这些菜你都会做,结果来一个顾客说他不知道吃点啥。

运筹学的理论的应用必然还是要有一个实际的背景问题,而不同的问题所处的行业不一样,每个行业都有自己的习惯自己的一套语言和模式,例如航空业就有很多专业术语,如果做航空优化的话,那么就要求运筹优化的算法工程师要具备一定的业务基础,否则你是无法和业务人员交流的,人家说话你都听不懂,1次2次不懂你可以问,十次八次不懂的话,人家就不爱和你说话了。而且运筹优化算法工程师一般都是作为乙方出现的,很多时候还必须是我们得放低姿态的去主动的接触业务学习业务才行啊,否则项目就很难进行下去。

(4) 测试困难,如何验证优化算法求解结果的正确性

好不容易,经过了重重阻碍,克服千难万险,我们的优化算法出炉了,我们可以得到一个结果。如何验证这个结果是正确的呢?其实非常抱歉的告诉你,基本没啥靠谱的方法去验证。现在在公司普遍的作法是两种,1是人为的构造一些类似benchmark的东西,这些东西的最优解比较显而易见,通过这些benchmark来检测算法的正确性;2是参考以前人工的经验来看,算法给出的解是不是合理,例如要是做一个调度算法呢,就找几个有经验的调度员来看这个算法是不是接近以前人工调度的结果,如果接近那就认为OK了。很显然这两种方法有很多的不足,第一种方法只能适用问题特别简单的时候,问题稍微复杂一点,规模大点benchmark就很难构造了,第二种方法虽然适用面更宽一些,但是问题也很明显,那就是以前人工调度的结果很难说是比较好的结果,那这个结果去和算法做对比本来参考系就有问题。

四、电商行业中的运筹学

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

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

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

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

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

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

104 评论

我最牛牛

1.数据分析和数据挖掘联系和区别 联系:都是搞数据的 区别:数据分析偏统计,可视化,出报表和报告,需要较强的表达能力。数据挖掘偏算法,重模型,需要很深的代码功底,要码代码,很多

138 评论

Nice甜甜圈

在回答题主问题之前,还是让我们先看一段PPV课社区上的一段真实对话:

小袁:我是一只苦逼的程序猿,俗称技术屌丝男,还属于码农阶段,起早贪黑不分时间,没房没车没对象,每天除了代码,就是BUG,觉得暗无天日,没有钱途,现在想换相关的职业,不知道DOCTOR V有什么可以介绍的?

Doctor V:云计算的实现,咱们迎来了大数据时代,而基于数据处理和开发,有几个职位想必你会感兴趣,且也是现在大数据时代 背景下所需求的。插一句,且这个行业工资还很高,绝对让你以后在技术行业有傲娇的资本…….^_^

小袁:那大数据行业职位都跟我说说呗?

Doctor V:大数据行业最主要的是数据分析师和大数据工程师,下面是它的职位体系架构

小袁:数据分析师和大数据工程师主要是做什么?

DoctorV:大数据工程师主要是偏开发层面,指的是围绕大数据系平台系统级的研发人员, 熟练Hadoop大数据平台的核心框架,能够使用Hadoop提供的通用算法, 熟练掌握Hadoop整个生态系统的组件如: Yarn,HBase、Hive、Pig等重要组件,能够实现对平台监控、辅助运维系统的开发。

小袁:学习这个需要什么基础吗?

Doctor V:java你肯定要很熟练, linux 这个也需要了解一些,当然hadoop本身入门不难,但是你想看懂源代码,想深入的理解,你要对多线程,并行化等概念都要了解,本身hadoop是一个框架,你把他了解透彻了也等于你对java技术已经有了一个系统的掌握了。

小袁:能简单跟我说说hadoop的学习路径吗?

DoctorV:简单来说就是,首先了解Hadoop原理和用途,了解什么是hdfs和mapreduce;其次,开始搭个环境跑一个wordcount;再次,跑完wordcount,你就可以改代码了;最后测试独立完成一个业务场景…..

小袁:嗯,了解,更多的还是偏技术,写代码。

那你还是跟我说说数据分析师这个职位吧,貌似跟数据打交道,挺有挑战性的!?

Doctor V:数据分析师是指基于大数据进行数据处理分析的人员,能熟练的用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总、理解并消化,以求最大化地开发数据的功能,发挥数据的作用。

小袁:这个听起来跟数据打交道,需要做决策分析的啊,好像挺有发展前途啊,有技术基础的能学吗,薪资怎么样啊?

Doctor V:数据分析师在企业中发挥的价值在于能够利用已有的数据资料(一手或二手的)进行观测,实验,研究分析出背后的一套规律为企业进行优化决策。业务层面的员工需要写出数据报告给老板看,如果你的分析结果对企业决策(如营销计划)有改善从而提高了业绩,那么待遇肯定是意想不到的。

数据分析师这个行业入门要求比较低,需要懂一些数据统计、ETL等知识,这些对于学技术的你来说,应该是小菜一碟。

小袁:这个职位,以后的职业路线是怎样的啊?

Doctor V:在职业发展方面,最初可能会是数据分析员从基层开始做起,有团队有人带,到后面逐渐上升为分析师,资深分析师、数据分析专家,数据架构师;其中数据架构师 要求比较高,既要精通数据分析师的业务决策层面,也要会使用Hadoop开发和使用运算模型,我觉得这个可以作为你未来的发展方向,因为你比纯粹的数据分析师有技术基础。

小袁:那么数据分析师和数据挖掘(算法)工程师又有什么区别呢?

Doctor V:数据挖掘(算法)工程师需要较强的编程能力,需要通过语言进行模型算法优化和相关数据产品的开发,而数据分析师需要更多的是业务理解和数据分析能力,一般是业务背景,对编程能力也没有严格的要求。

小袁:OK,got it!

数据分析师和数据挖掘工程师的区别:

1)处理的对象不同:数据挖掘一般是处理大数据,需要分布式计算和编程,数据分析师一般处理的小数据和抽样数据;

2)使用的工具不同:数据挖掘师一般是通过计算机工程和算法解决问题,需要写代码,而数据分析师是通过数据分析软件解决问题,使用的是软件工具和脚本语言;

3)三观不同:数据分析多依赖统计分析,一般需要因果分析和逻辑合理性,数据挖掘多依赖计算机技术,属于利用算力暴力破解,更专注相关性而非因果逻辑。

更多内容请搜索“AI时代就业指南”

240 评论

相关问答

  • 运筹优化工程师笔试

    计算机专业。当运筹优化算法工程师需要计算机专业研究生毕业可以当,主要工作是建立优化模型和设计优化求解算法工作难度较大需要研究生学历。

    chocolate宸 3人参与回答 2024-04-14
  • 华为运筹优化工程师

    这个随便一考都能过,考到移动的高级认证才值钱

    一叶扁舟85 3人参与回答 2024-04-14
  • 运筹优化工程师工资

    培养目标:本专业培养德、智、体全面发展,适应生产建设经济与管理服务需要的,具备管理学、经济学和土木工程技术的基本知识,掌握现代管理科学的理论、方法和手段,能在工

    Angelcat930 5人参与回答 2024-04-13
  • 运筹优化工程师的年薪

    5G无线网络优化工程师是做什么的? 网络优化工程师分为前台与后台。 前台工程师:在户外做信号测试工作、根据测试得到的数据做分析,进行优化调整,输出分析方案报告等

    素颜~红太狼 6人参与回答 2024-04-14
  • 美团运筹优化工程师

    有两种情况: 一·问问你的家里情况,比如家在哪,家里有几个兄弟姐妹,有多少地之类的,不要以为面试官在跟你闲谈,他从你的回答中就能听出你

    地板中的神话 3人参与回答 2024-04-14