【学界】运筹优化的剖析与应用

【学界】运筹优化的剖析与应用

文章作者:浩彬老撕
文章发表于微信公众号【运筹OR帷幄】:【学界】运筹优化的剖析与应用
欢迎原链接转发,转载请私信 @留德华叫兽 获取信息,盗版必究。
敬请关注和扩散本专栏及同名公众号,会邀请全球知名学者发布运筹学、人工智能中优化理论等相关干货、知乎Live及行业动态:『运筹OR帷幄』大数据人工智能时代的运筹学

在之前,我们讨论了数据分析的全生命周期,并着重介绍了基于对非结构化数据进行的“诊断性分析”,相关链接见如下:

数据分析五板斧与里面的屠龙刀(下)

最近,就有读者小王给浩彬老撕留言说:

考虑到实际业务问题的复杂,浩彬老撕先将其进行简化:

小王的公司是一个化学溶剂公司,主要生产溶剂A与溶剂B。其中生产1吨的溶剂A需要1吨的原料X以及3吨的原料Y,生产一吨的溶剂B则需要1吨的原料X,4吨的原料Y以及1吨的原料Z。现在知道1吨溶剂A的利润是30000,而1吨溶剂B的利润是40000。

由于公司规模的原因,每月只能够处理50吨X,180吨Y以及40吨Z。在此限制条件下,现在应该如何分配每月的生产计划,才能使到工厂的利润达到最大

实际上,这种在限定条件下寻求最优化的问题,就属于生命周期分析中的解释性分析。解释性分析的主要重点是能够借助于数据洞察,通过运筹优化等手段优化业务决策。它本身并不关心概率问题,也不通过研究过去发生的事件对未来进行预测。但它基于事实(成本和收益、可用的资源和需求、目标和限制),使用数学算法和逻辑找到最佳的计划或活动安排。

要完成解释性分析,可以总结为如下三个步骤:定义输入优化求解输出应用

定义输入:我们需要根据业务的需求,将其转化为能够用数学语言定义的问题,一般需要定义的内容包括有需求,资源,约束条件,求解目标。

需求:例如要生产的产品,要完成的订单,要进行安排的计划等;

资源:例如生产原料,具备不同技能的生产工人,各种生产机器等;

约束条件:例如每台机器不能连续生产20小时,每个工人不能连续工作16小时;

目标:例如最大化生产利润,最低运营成本,最短运输周期;

优化求解:优化问题可以有多种形式,一般可以采用数学规划法(MathematicalProgramming,MP)以及约束规划法(Constraint Programming,CP)。

1、数学规划法,MP

数学规划法是运用方程式大范围搜索潜在解决方案,探求数学上的最优方法。值得注意的是,由于线性方程式是数学规划法最主要的优化方式,所以一般在资料中有时会直接使用线性规划(LP)这个名称代替数学规划(MP)。

一般线性规划问题可以转化为如下直观的标准型:

(1)一个需要极大化的线性函数:

(2)问题的约束条件:

(3)非负变量:

在对业务问题进行数学建模转化后,就可以对问题进行求解。求解线性规划问题我们可以使用单纯形法,后来为提高解题速度,又有了改进的单纯形法,对偶单纯形法等。

值得注意的是,由于实际的业务情况极其复杂,在进行数学建模的时候,如果要考虑所有需要满足的约束和决策,可能的解决方案组合将是一个巨大的数目,一般来说,在探求最佳解决方案的过程中,需要执行数百万次的计算并生成数千个试验性的解决方案。


2、约束规划法,CP

由于要考虑到各种各样的现实情况,我们需要满足的约束和决策目标将是一个非常巨大的数据,假如存在的组合太多,那么数学规划法可能就不能在一个可以接受的时间内找到一个解决方案,我们把这种情形称之为求解中的“组合爆炸”问题。

在这种情况下,我们则可以考虑使用约束规划法,它可以通过连续的改进过程,将新的解决方案与基本的可行解决方案进行系统比较,使得他能够在数分钟内为大型优化问题找出好的解决方案。实际上,我们可以简单理解为,CP法将首先寻找问题的可行性,然后改善我们的解决方案直至慢慢接近完美。

输出应用:通过对问题的求解,根据实际问题的形式,我们将获得一个经过优化的计划或排程。现在解释性分析已经应用在如制造、运输、物流、金融服务、政府公用事业等各个领域。

接下来,我们回到开头,小王所提出的利润最大化问题。不妨假设溶剂A的生产产量为x1,溶剂B的生产产量为x2:

(1)我们需要极大化的线性函数(利润):

(2)问题的约束条件(生产限制):

(3)非负变量:

最后,我们通过线性规划的方法可以解得:

工厂能够获得最大利润1800100.

在运筹学中,最重要的首先是数学建模,之后的才是对问题的求解。但是由于以前我们缺乏可用的优化器,这就使得不仅在学术领域,即使在商业领域我们也需要花费大量的学习时间去处理求解问题。

而现在,由于优化软件的出现,将使得我们能够把更多的精力放在数学建模当中,在对问题进行建模后,我们只需要把对应的模型输入到优化软件中,就能完成分析。

说到优化工具,最著名的要数IBM的ILOG CPLEX。正如前面所提到,优化的核心是数学建模,当我们将业务问题进行抽象化的数学建模后,我们就可以把数学模型输入到CPLEX中进行求解。

为了满足各个行业对优化应用的需要,ILOG CPLEX提供了用于求解线性规划(LP)和相关问题的各种程序库,它可以非常轻易地使用交互方式或标准文件格式读取问题,对线性及二次约束的优化问题进行求解,最后也能通过交互方式或者把求解结果输出到文本文件中。

当然,为了能够满足业务需要,CPLEX除了优化技术上具有独特的优势外,它还可以进一步实现:

  • 同时对多个业务目标进行分析平衡;
  • 在受控的情况下解除初始设定的约束条件,自动解决过度约束问题;
  • 方便地实现多优化方案对比分析;
  • 增强的不确定性工具集能够实现在不确定情形下的优化;

值得注意的是,随着大数据应用的扩展,运筹学作为一门综合性的交叉学科,解释性分析很多时候并不仅仅单独存在。预测性分析中的统计预测以及解释性分析中的决策优化都是为了能够帮助人们做出更好的决策,前者帮助我们通过把握概率,考虑胜算,后者帮我们提升优化,达到最优。

在当下,往往是面对同一业务目标,采取多种分析手段相结合。因此,IBM也把决策优化工具与其他分析工具进一步进行整合成为新一代的数据科学平台IBM Data Science Experience,DSX

在DSX中,它将通过统一的界面进行数据读取,进行数据分析与数据挖掘(SPSS,R,Python),进行决策优化(ILOG)乃至于最后的可视化。这极大的方便了企业的数据科学家能够在一个平台中去完成整个数据项目的分析与应用工作。

文章来源申明:本篇文章来自 运筹OR帷幄,运筹优化的剖析与应用
如需转载请在公众号后台获取转载须知

如果各位想对IBM ILOG以及IBM Data Science Experience有更深入的了解,可以在 本公众号后台 回复关键词:“IBM”获取更多资料。如果觉得有用, 请勿吝啬你的留言和赞哦!~


扫二维码关注『运筹OR帷幄』公众号:

点击查看『运筹OR帷幄』志愿者招募介绍及加入方式

点击查看【骥寻伯乐】板块说明及投稿方式

发布于 2018-11-04

文章被以下专栏收录