大规模线性规划中的行生成和Benders分解有何区别?

作者:宿万潍时间:2023-07-24 15:13:06

导读:" 大规模线性规划是一种优化问题,可以用来解决许多实际应用中的决策问题。在大规模线性规划中,行生成和Benders分解是两种常用的求解方法。它们都有各自的特点和优势,下面将逐一介绍它们之间的区别。行生成:1.行生成是一种逐步生成约束条件的方法,可以用来处理大规模问"

  大规模线性规划是一种优化问题,可以用来解决许多实际应用中的决策问题。

  在大规模线性规划中,行生成和Benders分解是两种常用的求解方法。

  它们都有各自的特点和优势,下面将逐一介绍它们之间的区别。

行生成:

  1.行生成是一种逐步生成约束条件的方法,可以用来处理大规模问题。它将约束条件分为主问题和子问题,并通过迭代的方式逐步求解。

  2.行生成的核心思想是将原问题分解成多个子问题,每次只解决一个子问题。这样可以降低问题的复杂度,并且可以利用并行计算的优势。

  3.行生成的优点是可以处理大规模问题,同时还可以处理非线性约束条件。但是,由于需要迭代求解,所以收敛速度较慢。

Benders分解:

  1.Benders分解是一种将原问题分解成主问题和子问题的方法,但是它与行生成的区别在于,Benders分解将约束条件分解成主问题和子问题之间的约束条件。

  2.Benders分解的核心思想是通过引入松弛变量和松弛约束条件,将原问题分解成主问题和子问题。主问题负责生成松弛变量的值,子问题负责求解松弛变量的值。

  3.Benders分解的优点是可以有效地处理大规模问题,并且收敛速度相对较快。但是,它只能处理线性约束条件。

总结:

  从上面的介绍可以看出,行生成和Benders分解是两种常用的大规模线性规划求解方法,它们在处理大规模问题和约束条件类型上有所区别。具体选择使用哪种方法,需要根据实际问题的特点和要求来决定。

谁能跟我详细的讲讲benders 分解是怎么一回事吗 但我没啥分 但我内心...

  Benders分解技术Benders分解算法是J.F.Benders在1962年首先提出的,是一种求解混合整数规划问题的算法。

  Benders分解算法将具有复杂变量的规划问题分解为厅岩乎线性规划和整数规划,用割平面的方法分解出主问题与子问题,通过迭代的方法求解出最优值。

  Benders分解算法是一个很常用的算法,用来计算像最小整数非枣桐线性规划问题和随机规划问题之类的难以计算的难题。

  理论上来说,Benders算法是能解决大部分的整数规划问题。

  在实际运用中,它主要是从求解的运算次数和运算时间上来使求解扮悉问题得到优化。

  摘自百度百科。

benders分解和d-w分解的区别

  由一种物质反应生成两种或两种以上新物质的反应叫分解反应。

  其中部分反应为氧化还原反应,部分为非氧化还原反应。

  按照不同的分类标准,分解反应可以被分为不同的类别。

  此外,只有化合物才能发生分解反应。

  分解反应,是化学反应的常见的四大基本反应类型之一,是化合反应的逆反应。它指两种或两种以上物质分解成一种单质或化合物的反应,可以简单理解为“多变一”,也可以理解成为由两种或两种以上反应物发生化学反应后生成一种物质的反应,如水的电解、双氧水分解、氯酸钾受热分解,高锰酸钾受热分解等反应。

  水在直流电的作用下分解【2H2O==通电==2H2↑ O2↑】。

  现象:电极上有气泡产生,V(H2):V(O2)=2:1,正极产生的气体(O2)能使带火星的木条复燃,负极产生的气体(H2)能在空气中燃烧,产生淡信差蓝色火焰。

  加热碱式碳酸铜【Cu2(OH)2CO3==△==2CuO CO2↑ H2O】皮坦伏。

  现象:绿色粉末变成黑色,试管内壁有水雾或水珠生成,澄清石灰水变浑浊。

加热氯酸钾和二氧化锰制氧气:【2KClO3==MnO2催化且△==2KCl 3O2↑】

  现象:有气泡产生,带火星的木条复燃。

加热高锰酸钾制氧气:【2KMnO4==△==K2MnO4 MnO2 O2↑】

  现象:有气泡产生,带火星的木条复燃。

实验室用双氧水制氧气:【2H2O2==MnO2==O2↑ 2H2O】

  现象:有气泡产生,带火燃携星的木条复燃。

加热氧化汞:【2HgO==△==2Hg O2↑】

  现象:红色的氧化汞变为银白色,带火星的木条复燃。

碳酸不稳定而分解:【H2CO3====CO2↑ H2O】

  现象:有气泡产生,石蕊试液由红色变成紫色。

  希望我能帮助你解疑释惑。

什么是线性规划问题,及有那些相关概念?如何解决

线性规划问题的数学模型的一般形式  (1)列出约束条件及目标函数

  (2)画出约束条件所表示的可行域

    1939年苏联数学家Л.В.康托罗维奇在《生产组织与计划中的数学方法》一书中提出线性规划问题,也未引起重视。

    1947年美国数学家G.B.丹齐克提出线性规划的一般数学模型和求解线性规划问题的通用方法──单纯形法,为这门学科奠定了基础。

    1947年美国数学家J.von诺伊曼提出对偶理论,开创了线性规划的许多新的研究领域,扩大了它的应用范围和解题能力。

    1951年美国经济学家T.C.库普曼斯把线性规划应用到经济领域,为此与康托罗维奇一起获1975年诺贝尔经济学奖。

    50年代后对线性规划进行大量的理论研究,并涌现出一大批新的算法。例如,1954年C.莱姆基提出对偶单纯形法,1954年S.加斯和T.萨迪等人解决了线性规划的灵敏度分析和参数规划问题,1956年A.塔克提出互补松弛定理,1960年G.B.丹齐克和P.沃尔夫提出分解算法等。

    线性规划的研究成果还直接推动了其他数学规划问题包括整数规划、随机规划和非线性规划的算法研究。由于数字电子计算机的发展,出现了许多线性规划软件,如MPSX,OPHEIE,UMPIRE等,可以很方便地求解几千个变量的线性规划问题。

    1979年苏联数学家L.G.Khachian提出解线性规划问题的椭球算法,并证明它是多项式时间算法。

    1.根据影响所要达到目的运则的因素找到决策变量;

    2.由决策变量和所在达到目的之间的函数关系确定目标函数;

    3.由决策变量所受的限制条件确定决策变量所要满足的约束条件。

  所建立的数学模型具有以下特点:

    1、每个模型都有若干个决策变量(x1,x2,x3……,xn),其中n为决策变量个数。决友衫策变量的一组值表示一种方案,同时决策变量一般式非负的。

    2、目标函数是决策变量的线性函数,根据具体问题可以是最大化(max)或最小化(min),二者统称为最优化(opt)。

    3、约束条件旁告棚也是决策变量的线性函数。

    当我们得到的数学模型的目标函数为线性函数,约束条件为线性等式或不等式时称此数学模型为线性规划模型。

  例:

  生产安排模型:某工厂要安排生产Ⅰ、Ⅱ两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表所示,表中右边一列是每日设备能力及原材料供应的限量,该工厂生产一单位产品Ⅰ可获利2元,生产一单位产品Ⅱ可获利3元,问应如何安排生产,使其获得最多?

  解:

    1、确定决策变量:设x1、x2为产品Ⅰ、Ⅱ的生产数量;

    2、明确目标函数:获利最大,即求2x1 3x2最大值;

  3、所满足的约束条件:

  设备限制:x1 2x2≤8

  原材料A限制:4x1≤16

  原材料B限制:4x2≤12

  基本要求:x1,x2≥0

  用max代替最大值,s.t.(subjectto的简写)代替约束条件,则该模型可记为:

  maxz=2x1 3x2

  s.t.x1 2x2≤8

  4x1≤16

  4x2≤12

  对于一般线性规划问题:

  Minz=CX

  S.T.

  AX=b

  X>=0

    其中A为一个m*n矩阵。

  若A行满秩

    则可以找到基矩阵B,并寻找初始基解。

    用N表示对应于B的非基矩阵。则规划问题1可化为:

  规划问题2:

  Minz=CBXB CNXN

  S.T.

  BXB NXN=b(1)

  XB>=0,XN>=0(2)

  (1)两边同乘于B-1,得

  XB B-1NXN=B-1b

  同时,由上式得XB=B-1b-B-1NXN,也代入目标函数,问题可以继续化为:

  规划问题3:

  Minz=CBB-1b (CN-CBB-1N)XN

  S.T.

  XB B-1NXN=B-1b(1)

  XB>=0,XN>=0(2)

  令N:=B-1N,b:=B-1b,ζ=CBB-1b,σ=CN-CBB-1N,则上述问题化为规划问题形式4:

  Minz=ζ σXN

  S.T.

  XB NXN=b(1)

  XB>=0,XN>=0(2)

    在上述变换中,若能找到规划问题形式4,使得b>=0,称该形式为初始基解形式。

    上述的变换相当于对整个扩展矩阵(包含C及A)乘以增广矩阵。所以重在选择B,从而找出对应的CB。

  若存在初始基解

  若σ>=0

    则z>=ζ。

  同时,令XN=0,XB=b,这是一个可行解,且此时z=ζ,即达到最优值。

  所以,此时可以得到最优解。

  若σ>=0不成立

    可以采用单纯形表变换。

    σ中存在分量<0。

  这些负分量对应的决策变量编号中,最小的为j。

  N中与j对应的列向量为Pj。

  若Pj<=0不成立

    则Pj至少存在一个分量ai,j为正。在规划问题4的约束条件(1)的两边乘以矩阵T。

  T=

    则变换后,决策变量xj成为基变量,替换掉原来的那个基变量。为使得Tb>=0,且TPj=ei(其中,ei表示第i个单位向量),需要:

    lai,j>0。

    lβq βi*(-aq,j/ai,j)>=0,其中q!=i。即βq>=βi/ai,j*aq,j。

    n若aq,j<=0,上式一定成立。

    n若aq,j>0,则需要βq/aq,j>=βi/ai,j。因此,要选择i使得βi/ai,j最小。

    如果这种方法确定了多个下标,选择下标最小的一个。

    转换后得到规划问题4的形式,继续对σ进行判断。由于基解是有限个,因此,一定可以在有限步跳出该循环。

  若对于每一个i,ai,j<=0

    最优值无界。

  若不能寻找到初始基解

    无解。

  若A不是行满秩

浅谈学习运筹与优化软件的心得

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

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

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

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

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

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

二、电力行业中的运筹学

  本人领域是电力系统最优化,可能大家没有察觉,但是现在中国的电力网络毫无争议的走在了世界的最前沿。

  强如美国,最近也又一次出现了大规模停电问题。

  (上次是1977年加州大停电)这次美国的停电持续了25个小时,约至少4万人受到了影响,经济损失至少3000万美金以上。

  但是中国自从普及用电后,从没发生过如此大规模的停电问题。

  除了电力人的辛勤奋斗外,这也离不开运筹学在电力系统中的应用。

  众所周知,我们现在的电力网是交流输电网络。

  交流输电网络中的参数远比直流输电网络要复杂得多。

  最明显的不同,在交流网络中我们需要处理线路的有功功率无功功率。

  除此之外,线路的损耗、输电节点的电压和相角也是我们需要考虑的因素。

  为了保证整个电力系统的损耗最小,我们需要建立相关的数学模型进行分析计算,然后再由调度中心进行调控。

  但是实际问题的复杂程度远远超乎想象,单一个最优潮流问题就是一个大规模非凸非线性的问题。

  为了求解这类问题,相关学者提出了诸多算法和理论。

  诸如:半正定规划、现代内点法、凸松弛技术,模型近似技术等。

  这些理论已经发展了数十年,但即便如此,也没有一套成熟的理论被应用到实际中。

  在电力网中,我们不单要考虑线路损耗的降低,更重要的是要保证供电的可靠性。

  我们常常需要提前一天或数天对电力系统进行调度安排,这类问题往往是一个多层优化问题,对于这类问题,我们常见的求解办法是Benders分解和列生成。

  除此之外,我们需要不定期对线路检修,发电厂的维护,而线路的通断、发电厂的启停在数学模型中又成了一个整数规划问题。

  整体的求解难度又上升了一个层次。

  另外,在国家大规模倡导新能源接入的今天,风电和光伏电站不断被接入电力网络中,而新能源不能得到普及的一个重要因素是我们不能准确预知新能源电厂在下一时刻能够发出多少电能供我们使用。

  为了分析这类问题,我们的模型在混合整数非线性规划上又需要考虑不确定因素带来的影响。

  对这类问题的求解,我们又提出了随机规划、鲁棒优化、分布鲁棒等。

  还有一点,没亏我们的输电线路可能会由于雷击、树枝接触等导致出现输送功率出现扰动。

  系统中的这些小扰动可能会对用户供电的电压和频率产生波动,对于普通家庭来说可能影响不大,但是对于一些高精技术的产业,一次电压或频率的波动就可能导致整个生产线的崩溃。

  如何建立相关的数学优化模型来预防这一问题也是当前的研究热点之一。

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

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

三、制造业中的运筹学

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

1、任务规划/排班

(1)场景定义

  首先说一下什么是任务规划,什么是排班。

  任务顷模规划是基于设定好的任务输入,进行任务的排期规划,以达到资源的有效利用和工作效率的提升。

  任务规划主要用于传统制造业/工厂排程,建筑工程规划排程,物流运输线路任务打包等场景。

  任务规划后输出给虚拟人或者其它虚拟资源创建的带有时间窗的任务包,排班则基于这些任务包,把它对应到实际的人或者其它真实车辆,机械等资源中,规划出某些资源在什么时候做什么任务的结果,以及该任务需要消耗多少其它资源。

(2)方法论

  主要的规划方法也是传统运筹优化使用的方法。

  首先了解真实的业务场景,抽象业务规则和约束,搭建数学模型,运用规划求解器(Cplex,Gurobi等)或者启发式算法(LocalSearch,IterativeForwardSearch等以及各种变种)进行求解。

  启发式算法可以在现有的solver上进行基于不同场景的二次开发,也可以自行开发。

  业界一般采用第一种方式。

(3)实际运用困难点

  在实际场景中,给不同资源的排班会有很多实际因素要考虑。

  给人排班要考虑人的工作班次时长,人历史的上班习惯(如习惯上晚班,晚班后不能接早班),人所拥有的技能,个人的偏好(偏好某个工种或者上班时间段),法律规定以及不同工厂因为地域有不同的差异,如香港是8小时工作制,而大陆班次时长可以是10小时等。

  当我们处理实际问题的时候,先要梳理实际场景,总结管理规律,构建多种配置参数,进行建模。

  相比于排班来说,任务规划因为是针对虚拟资源而构建,所以可以不用考虑过多的资源属性(如人习惯)等因素。

2、实时调度

(1)场景定义

  基于实时数据输入,进行任务的整合和任务的分配。

  主要的场景有:O2O外卖即时配送,打车软件车辆实时调度,仓储叉车/AGV,分拣中心分拣机器人实时调度等场景。

  实时调度的场景主要集中于新业务,而非传统的制造业和实体企业。

  传统的制造业和实体企业骄傲于他们的规划,而前面场景定义所提到的一些新业务场景,无法采用有效地长期规划手段,更多地是依赖短期的预测和实时的规划调度。

(2)方法论

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

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

  ●短时间压单后进行任务分配,以牺牲一定的最优性而换来快速高效地计算,采用传统并行的多个TabuSearch,SimulatedAnnealing等进行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)。

  因此,要在此基础之上,设计实用的优化算法,实际上对经典的运筹学模型和优化算法来说,也是巨大的挑战。

  因此,在目前我注意到的这些业界的实际“优化”业务中,机器学习方法和运筹学模型基本上是要一起使用的。

  更具体的来说,业界更需要的是“数据驱动”的决策模型。

  比如,现有的机器学习、深度学习方法带给我们良好的预测模型,而所谓的决策模型/优化模型便往往可以基于这些预测模型之上。

  当然,最理想的状态是能够将预测和决策这两个看似分离的步骤结合起来,即,动态地基于预测调整决策,再通过现阶段的决策调整之后的预测。

  关于这点,目前学术界有了很多不错的理论,但距离工业界的实际“落地”还是有距离的。

  这或许便是业界当中机器学习和运筹学的未来吧。

求解大规模整数非线性规划用什么方法好?cplex/gorubi?还是用智能启发式...

1,这两种也只能友州精确求解线形规划问题

2,要看问题特性,有些可以好贺蔽按照线性规划方法解最优拍胡解

3,大规模问题,一般要用到分解算法.

提交信息测一测您提升学历详细信息