求解器:助力智能决策的利器

求解器是什么,又能做什么?
摘要由CSDN通过智能技术生成

在工业化发展进程中,底层基础技术和软件的发展非常重要,这其中有一项技术被认为是运筹优化领域的“皇冠”——求解器。

求解器技术属于典型的底层技术领域,技术门槛高、研发难度大、投入时间长且风险较高,尤其需要对优化理论有深入研究、对大规模计算机系统工程开发非常精通的科技人才。种种条件制约下,从 1957 年纽厄尔和西蒙(两人为 1975 年图灵奖获得者)等人开始研究一种不依赖于具体领域的“通用问题求解器(General Problem Solver,GPS)”到现在,60 余年发展,全球主流求解器市场仍被来自 GUROBI、IBM、FICO 三家美国公司的产品所垄断,并且构筑了极高的市场竞争门槛。

由于求解器在工业场景中的重要作用,近几年国产求解器研发领域也在蓬勃发展,除了中科院的开源求解器 CMIP 外,国内一些新兴科技公司和大厂也开始投身于商用求解器研发。在 ASU 教授 Hans Mittelmann 维护的国际权威第三方求解器评测榜单中,国产求解器在线性规划 LP 求解速度方面已处于全球商用求解器中的领先地位,但在其他数学规划领域,比如混合整数规划、非凸的非线性规划等方面,在求解速度、可求解模型数量上还依然落后。

那今天我们就带大家了解下求解器是什么,又能做什么?

一、求解器是何方“神器”

在介绍求解器之前,我们先从基础理论和方法出发,简单了解一下数学规划。
数学规划是运筹学的一个分支,其用来研究在给定条件下(约束条件),如何按照某一衡量指标(目标函数)来寻求工作中的最优方案。根据问题的性质和处理方法的差异,数学规划又可分成许多不同的分支,如线性规划、非线性规划、整数规划、混合整数规划、动态规划等等。
常见的数学规划问题 | 来源:网络
上图为常见的数学规划问题 | 来源:网络

数学规划在国防、工业制造、交通物流、资源管理、金融、集成电路设计、电力管理等生产生活各个领域都有着十分广泛的应用,是在实际应用中创造价值最巨大的优化方法。我们在现实中遇到的各种类型优化问题,小到快递员路线选择、商铺选址,大到工厂生产排程、物流路径规划和金融风控等,都可以抽象成一个数学规划问题,采用数学定义的方式,定义出优化问题三要素:即决策变量、优化目标以及约束条件,进而建立不同的数学模型。

数学规划是优化问题建模的第一步,也是最为重要的一步,它界定了问题的类型和求解难度。有了数学模型,求解器就可以帮助我们求解这个问题并寻找问题的最优解。

简而言之,求解器就是用来求解数学规划问题的一类软件,在现实生产生活中具有重要价值和意义。在世界一流的企业供应链管理(SCM)软件,包括结合了运筹优化技术的生产计划与排程系统(APS)、运输管理系统(TMS)等企业决策软件中,都能见到求解器的身影。

二、主流求解器一览

目前主流求解器市场主要分为商用求解器、开源求解器两类,全球知名的商用求解器主要有 Gurobi、IBM Cplex、FICO Xpress,开源求解器主要有 SCIP。这两类求解器相比,商用求解器求解效率优势明显,以制造业中的生产排程为例,在保证数据准确性的前提下,采用商用求解器计算的排产指标可缩短至分钟级。此外还有一些拥有强大计算能力的商业计算软件,比如 Matlab 等也都自带有求解器模块,可以求解部分数学规划问题,不过求解效率和商用求解器相比还是有一定差距。

那么面向不同的数学规划问题我们应该如何选择求解器?目前市面上又有哪些通用求解器可以选择呢?接下来我们对市面上常见的通用数学规划求解器进行一下梳理!

  • PART1 商用求解器
求解器 所属机构 可求解的问题 优势特点
GUROBI 美国/Gurobi Optimization 多种类型 性能卓越,各项求解指标领先,全球用户范围广
CPLEX 美国/IBM 大规模线性规划、混合整数规划、二次规划和二次约束规划 包含数学规划求解器CPLEX Optimizer和约束规划求解器CP Optimizer
Xpress 美国/FICO 多种类型 包括通用非线性求解器 Xpress NonLinear,能快速准确解决复杂一般非线性问题
MOSEK 丹麦/MOSEK ApS 侧重二次规划、半定规划和二阶锥规划 公认的求解二次规划、二阶锥规划和半正定规划问题最快的求解器之一
BARON 美国/The Optimization Firm 非线性规划为主 能够将非凸优化问题求解到全局最优
Lingo 美国/LINDO 线性、非线性(凸和非凸/全局)、二次、二次约束、二阶锥、半定、随机和整数规划 内置建模语言,提供许多常用函数方便使用者建立优化模型时调用
杉数COPT 中国/杉数科技 线性规划、混合整数规划、二阶锥规划、半定规划、凸二次(约束)规划 综合性数学规划求解器,线性规划排名世界前列,已应用于多个国内项目,提供定制化服务
阿里云MindOPT 中国/阿里云 线性规划 线性单纯形法目前排第一,已应用于云计算等多项阿里业务
华为OPTV 中国/华为 线性规划、整数规划 融合前沿AI能力,可根据问题特征自适应进行参数调优和求解策略选取
  • PART2 开源求解器
求解器 所属机构 可求解的问题 优势特点
SCIP 德国/ZIB研究所 混合整数(非线性)规划 目前混合整数规划和混合整数非线性规划最快的非商业求解器之一
Coin-OR旗下开源求解器 开源社区/全球多个组织和个人 多种类型 COIN-OR维护着市面上几乎所有的开源优化求解器,包括CLP/CBC/CGL/SYMPHONY/ipopt/pyomo等数十种求解器和建模语言
LP_solve 开源社区/sourceforge 纯线性、(混合)整数/二进制、半连续和特殊有序集(SOS)模型 基于修正单纯形法和分支定界法的免费线性(整数)规划求解器
GLPK 俄罗斯/GNU 线性规划、混合整数规划 开源,使用方便,可求解一定规模的线性规划问题,支持直接调用,也能提供C、julia等编程语言的库或package
OR-Tools 美国/谷歌 线性规划、整数规划 集合了面向不同问题的优化工具套件,可免费使用且公开源代码,支持CPLEX、SCIP等第三方求解器
CMIP 中国/中科院 整数规划 采用一种广义系数缩紧割平面(GCSC)技术,对于一般整数规划问题具有一定改善效果,网络设计问题效果显著
Leaves优化求解器 中国/上海财大-杉数 线性规划 由上海财经大学的并行优化国际实验室与杉数科技共同牵头建设,主要聚焦于一些最新大规模一阶和二阶算法的探讨
  • PART3 其他软件集成
求解器 所属机构 可求解的问题 优势特点
MATLAB 美国/MathWorks 多种类型 MATLAB是一个包含大量数学函数库的应用程序,提供了多种面向不同问题的数学规划求解器,适用问题规模较小
SAS 美国/SAS Institute 多种类型 SAS是专业的统计分析软件,包含通用的线性规划、混合整数规划和非线性规划的求解模块
SCIPy 开源工具 多种类型 scipy是python科学计算生态栈中的顶级开源库,提供了大量的数值优化求解器,并且提供了统一的数值优化求解器接口

三、求解器是如何求解的?

求解器通常集成了包含多种优化算法的算法框架,比如分支定界法(Branch and Bound Algorithm, B&B)、割平面法(Cutting Planes Method)以及其他启发式算法。在这其中,分支定界法是求解器精确算法框架中最重要的核心算法之一,也是最常用的优化算法,可以用来求解纯整数规划、混合整数规划等问题,以解决现实生产生活中的物流配送、路径规划、航班调度等问题。目前市面上主流的 GUROBI、CPLEX 等商用求解器都是以分支定界法+割平面法作为算法框架的。

下面我们以一个整数规划问题为例,介绍一下求解器的分支定界法是如何求解的。

假如我们要求解这样一个问题:

m a x   Z =   3 x 1 + 10 x 2 + 6 x 3 s u b j e c t   t o      5 x 1 + 8 x 2 + 6 x 3 < = 12 x 1 , x 2 , x 3   i s   b i n a r y   v a r i a b l e \begin{gather} max\ Z=\ 3x_1+{10x}_2+{6x}_3 \nonumber \\ subject\ to\ \ \ \ 5x_1+{8x}_2+{6x}_3<=12 \nonumber \\ x_1,x_2,x_3\ is\ binary\ variable \nonumber \end{gather} max Z= 3x1+10x2+6x3subject to    5x1+8x2+6x3<=12x1,x2,x3 is binary variable

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值