运筹学从形成到发展,在此过程中积累的大量理论和方法在国防、能源、制造、交通、金融、通信等各个领域发挥着越来越重要的作用。我们在生产生活中遇到的很多实际问题,都可以通过运筹学所涉及的优化方法对其进行数学建模,表示为数学问题,而为了解决这些数学问题,求解器应运而生。
优化求解器主要以工业软件的形式,把数学规划方法用于大规模复杂问题的优化求解,是解决各种数学规划问题的核心工具,在实际生产生活中具有重要价值和意义。在工业领域,求解器作为产业链和供应链优化的核心引擎,能够为复杂应用场景提供智能决策,助力企业决策优化,实现降本增效。
目前市面上的主流优化求解器主要分为商用求解器(比如Gurobi、IBM Cplex等)、开源求解器(比如SCIP等)两大类。此外还有一些商业计算软件比如Matlab,甚至是常用的Excel表格中都包含有求解器工具,可以求解部分规模较小的数学规划问题,不过求解效率和商用求解器相比还是有一定差距。
除了上面提到的这些求解器,目前市面上还有哪些优化求解器可供选择?各自又有哪些技术优势,能够支持哪些类型的数学规划模型呢?接下来我们对市面上较常见的国内外优化求解器进行一下梳理总结!
PART1 商用求解器
1,Gurobi
Gurobi是由美国 Gurobi Optimization 公司开发新一代大规模求解器。在全球最著名的专业求解器评比网站 Decision Tree for Optimization Software (http://plato.asu.edu/bench.html) 中,Gurobi 展示出更快的求解速度和精度。Gurobi 全球用户超过2600家,广泛应用在金融、物流、制造、航空、石油石化、商业服务等多个领域。
技术优势:
(1)可以求解大规模线性问题,二次型问题和混合整数线性和二次型问题
(2)支持非凸目标和非凸约束的二次优化
(3)支持多目标优化
(4)支持包括SUM, MAX, MIN, AND, OR等广义约束和逻辑约束
(5)支持包括高阶多项式、指数、三角函数等的广义函数约束
(6)问题尺度只受限制于计算机内存容量,不对变量数量和约束数量有限制
(7)采用最新优化技术,充分利用多核处理器优势。支持并行计算
(8)提供了方便轻巧的接口,支持 C++, Java, Python, .Net, Matlab 和R,内存消耗少
(9)支持多种平台,包括 Windows, Linux, Mac OS X
支持模型:
(1)连续和混合整数线性问题
(2)凸目标或约束连续和混合整数二次问题
(3)非凸目标或约束连续和混合整数二次问题
(4)含有对数、指数、三角函数、高阶多项式目标或约束,以及任何形式的分段约束的非线性问题
(5)含有绝对值、最大值、最小值、逻辑与或非目标或约束的非线性问题
支持接口语言: C++, Java, Python, .Net, Matlab 和R
最新版本:9.5
官网:http://www.gurobi.com/(中国区:http://www.gurobi.cn/)
2, IBM CPLEX Optimizer
CPLEX历史悠久,最初版本在1988年就被开发出来,1997年被ILOG公司收购,2009年纳入IBM怀抱,如今已发展成为IBM决策优化系统IBM ILOG CPLEX Optimization Studio(简称COS)。作为COS系统中的关键组件,CPLEX Optimizer 为线性规划、混合整数规划、二次规划和二次约束规划问题提供灵活的高性能数学规划求解器。 这些求解器包括用于混合整数规划的分布式并行算法,支持利用多台计算机来解决难题。
优势特点:
(1)稳健的算法
CPLEX Optimizer 已经求解具有数百万个约束和变量的优化模型
(2)CPLEX Optimization Studio 接口
使用 ILOG Concert Technology 和 CPLEX Callable Library 之类的接口,构建和部署优化应用。
(3)IBM ILOG CPLEX Optimizer 性能基准
(4)快速自动重新启动
修改线性程序,然后重新求解,所用时间只有原始求解过程的一个零头。 从众多先前解决方案开始,混合整数规划可以得到修改并求解。
支持模型:
专门用于求解大规模的线性规划(LP)、二次规划(QP)、带约束的二次规划(QCQP)、二阶锥规划(SOCP)等四类基本问题,以及相应的混合整数规划(MIP)问题。
支持接口语言: C, C++, Java, C# or Python APIs
最新版本:22.1
官网:https://www.ibm.com/cn-zh/analytics/cplex-optimizer
3, FICO Xpress
Xpress求解器是商业优化求解器,Xpress 包括通用非线性求解器 Xpress NonLinear,逐次线性规划算法(SLP,一阶方法)和Artelys Knitro(二阶方法)。
Xpress 于 1983 年发布,是第一个在PC上运行的商业LP和MIP求解器。1992年,发布了并行计算的Xpress版本