首页>软件资讯>常见问题

常见问题

数学规划求解器都有哪些

发布时间:2024-04-25 10:02:13人气:18

求解器主要以工业软件的形式,把数学规划方法用于大规模复杂问题的优化求解,是解决各种数学规划问题的核心工具,在实际生产生活中具有重要价值和意义。在工业领域,求解器作为产业链和供应链优化的核心引擎,能够为复杂应用场景提供智能决策,助力企业决策优化,实现降本增效。

目前市面上的数学规划求解器主要分为商用求解器(比如Gurobi、IBM Cplex等)、开源求解器(比如SCIP等)两大类。此外还有一些商业计算软件比如Matlab,甚至是常用的Excel表格中都包含有求解器工具,可以求解部分规模较小的数学规划问题,不过求解效率和商用求解器相比还是有一定差距。

那目前市面上都有哪些求解器可供选择?各自又有哪些技术优势,能够支持哪些类型的数学规划模型呢?接下来我们对市面上较常见的国内外数学规划求解器进行一下梳理总结!

PART1 商用求解器

1,Gurobi

Gurobi是由美国 Gurobi Optimization 公司开发新一代大规模求解器。在全球最著名的专业求解器评比网站 Decision Tree for Optimization Software (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

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


3, FICO Xpress

Xpress求解器是商业优化求解器,Xpress 包括通用非线性求解器 Xpress NonLinear,逐次线性规划算法(SLP,一阶方法)和Artelys Knitro(二阶方法)。

Xpress 于 1983 年发布,是第一个在PC上运行的商业LP和MIP求解器。1992年,发布了并行计算的Xpress版本,五年后扩展到分布式计算。2008 年被FICO收购。Xpress 是第一个通过在 2010 年引入 64 位索引而跨越十亿决策变量阈值的 MIP 求解器。自 2014 年以来,Xpress 首次实现了并行对偶单纯形方法的商业实现。

Xpress 包括其建模语言 Xpress Mosel和集成开发环境 Xpress Workbench。Mosel 包含分布式计算功能,可并行解决优化问题的多个场景。输入数据的不确定性可以通过稳健的优化方法来处理。

优势特点:

(1)能解决决策变量数千万的LP和MIP问题,以及决策变量数达数百万的一般非线性问题。数以亿计的非零问题系数在Xpress部署使用中很常见。

(2)支持开箱即用的多线程并行处理,利用多个CPU核心快速高效地解决客户最棘手的问题。

(3)提供了一套全面的高性能非线性问题解决方案,使企业能够快速、准确地解决更复杂的一般非线性问题。Xpress Nonlinear可以在几分钟的实际运行时间内解决实际业务中的数百万决策变量问题。此外,Xpress Nonlinear可以解决黑盒优化问题,允许您以调用函数的形式将外部进程作为系数嵌入和建模。

支持模型:

线性规划(LP)、混合整数线性规划(MILP)、二次规划(QP)、二次约束二次规划(QCQP)、二阶锥规划(SOCP)、混合整数非线性规划(MINLP)、混合整数二次规划(MIQP)、混合整数二次约束二次规划(MIQCQP)、混合整数二阶锥规划 (MISOCP)、一般非线性规划(NLP),一般混合整数非线性规划(MINLP)、约束规划(CP)

支持接口语言:.NET、Java、C、C++、VB、Python、Matlab、Solver API、Mosel API、BCL


4,MOSEK

MOSEK是由丹麦MOSEK ApS公司开发的一款数学规划求解器,也是公认的求解二次规划、二阶锥规划和半正定规划问题最快的求解器之一,广泛应用于金融、保险、能源等领域。

优势特点:

(1)提供优化服务器用于远程优化。

(2)充分利用多核处理器硬件特点进行并行计算;

(3)可求解的问题规模仅受限制于计算机内存容量;

(4)领先世界的内点法实现,用于求解线性、二阶锥和二次规划问题;

(5)提供基于矩阵和Fusion的编程接口,包括C、C++、Python、Java、C#、MATLAB和R;

(6)支持多种建模环境,包括AMPL、GAMS和CVX等商业工具,CVXPY和JuMP等开源工具;

(7)支持多种操作系统,包括Windows、Linux和MacOS;

支持模型:

线性规划(LP),二次约束凸规划(QCQP),二阶锥规划(CQP,SOCP),半正定规划(SDP),一般可分离凸规划(SCP)和混合整数规划(MIP)。

支持接口语言: C, C++, Java, MATLAB, .NET, Python, and R

5,BARON

BARON(Branch And Reduce Optimization Navigator)是一种通用的非线性优化器,能够将非凸优化问题求解到全局最优。决策变量可以是连续的、整数的或两者的混合。BARON 已用于化学过程工业、制药、能源生产、工程设计和资产管理等领域的应用。BARON 可在各种平台上的AIMMS、AMPL和GAMS 建模语言下使用。BARON算法和软件的开发已获得 2004 年 INFORMS 计算协会奖和 2006 年 Beale-Orchard-Hays 奖的认可,以表彰其在数学优化协会的计算数学编程方面的卓越表现。

优势特点:

(1)用于全局优化的高级分支定界,结合了约束传播、区间分析和对偶性。

(2)对可能具有许多局部最优解的问题进行全局优化。

支持模型:

线性规划(LP)、一般非线性规划(NLP)、混合整数规划(MIP)、一般混合整数非线性规划(MINLP)

支持接口语言: 支持所有主要接口,包括Python、Julia、MATLAB、AIMMS、AMPL、GAMS等。

最新版本: 22.9.30


6,Lingo

LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的专门用于求解最优化问题的软件包。其特色在于内置建模语言,提供许多常用函数方便使用者建立优化模型时调用,并提供与其他数据文件(如文本、EXCEL、数据库等)的接口,易于方便地输入、求解和分析大规模最优化问题。

优势特点:

(1)方便的模型表达

内置建模语言允许您以一种易懂的直观的方式来表达模型,更加容易构建模型,更容易维护。

(2)方便的数据选项

允许您直接与数据库、电子表格程序交换数据来构建模型、生成报告。

(3)众多的内置函数

自带了众多的函数,包含大量数学,财经,集合,概率密度,接口,报告等函数。

(4)方便的数据选项

能够直接以多种方便的格式来管理您的数据。

(5)电子表格程序能力

直接链接到电子表格程序的能力允许您充分利用电子表格程序环境的功能和灵活性。

(6)数据库能力

使用ODBC技术来允许您访问在任何常用Windows数据库应用程序中的集合信息和数据。

(7)强大的求解器

拥有一整套快速的、内建的求解器用来求解多种数学规划问题,甚至不需要指定或启动特定的求解器,LINGO会读取您的方程式并自动选择合适的求解器。

(8)交互式模型或创建Turn-key应用程序

对于开发交互式模型,LINGO提供了一整套建模环境来构建,求解和分析您的模型。对于构建turn-key解决方案,LINGO提供的可调用的DLL和OLE界面能够从用户自己写的程序中被调用。LINGO也能够从Excel宏或数据库应用程序中被直接调用。

(9)详尽的文档和帮助

LINGO提供了所有的您需要快速启动和运行的工具。您能得到一本LINGO User Manual,该手册详尽的描述了程序的命令和功能.同样高级版本带有一本更大的Optimization Modeling with LINGO手册,这是一本综合教科书,讨论了所有主要的线性,整数和非线性优化问题分类.LINGO同时还带有许多基于真实世界的案例可用来修改和扩展。

支持模型:

线性、非线性(凸和非凸/全局)、二次、二次约束、二阶锥、半定、随机和整数规划。

支持接口语言: C/C++, FORTRAN, Java, C#.NET,VB.NET, ASP.NET, Visual Basic, Delphi, Excel.


7,杉数COPT

杉数求解器COPT(Cardinal Optimizer),是杉数自主研发的针对大规模优化问题的高效数学规划求解器套件,也是支撑杉数端到端供应链平台的核心组件。COPT是目前同时具备大规模混合整数规划、线性规划(单纯形法和内点法)、二阶锥规划、半定规划以及凸二次规划和凸二次约束规划问题求解能力的综合性能数学规划求解器,为企业应对高性能求解的需求提供了更多选择。

优势特点:

(1)国产自主知识产权

在通信、能源、军事、电网、航空等领域,出于保障国家重要数据安全的目的,具有自主知识产权的优化求解器和运筹优化算法平台不仅具有极大的商业价值,更具有无可估量的社会价值。

(2)求解性能强大

2022年6月发布求解器COPT5.0版,COPT线性规划性能已超越三大全球领导品牌,整数规划性能也已位列前茅,新增半定规划SDP模块,具有强大的底层技术优势。

(3)定制化求解加速

针对客户大规模问题,进行方法和参数上的调整,和用其他求解器比,求解速度有10%~50%不同程度的提升。

(4)落地化解决方案

COPT线性及整数求解器已被应用于国家和企业的多个重要项目中,拥有丰富的落地场景。并可针对不同行业解决方案定制化,根据需求及实际情况,为客户量身定制服务。

支持模型:

线性规划、混合整数规划、二阶锥规划、半定规划、凸二次(约束)规划

支持接口语言: C、C++、C#、Python、Julia、Java、AMPL、GAMS、Pyomo、PuLP、CVXPY等。



上一条:优化求解器gurobi

下一条:Matlab中Gurobi安装和调试指南