数学规划优化系统  工具选型_解决方案

目录

  • ​​维基百科有词条比较了各个优化软件​​
  • ​​Gurobi​​
  • ​​CBC​​
  • ​​CPLEX​​
  • ​​SCIP成套优化工具​​
  • ​​XPRESS​​
  • ​​MATLAB​​
  • ​​SAS​​

维基百科有词条比较了各个优化软件

​https://en.wikipedia.org/wiki/List_of_optimization_software​ ​​ ​https://en.wikipedia.org/wiki/List_of_optimization_software​ ​​ ​https://en.wikipedia.org/wiki/Comparison_of_optimization_software​

Gurobi

​http://www.gurobi.cn/about.asp?id=1​

Gurobi 是全局优化器,支持的模型类型包括:

(1)连续和混合整数线性问题

(2)凸目标或约束连续和混合整数二次问题

(3)非凸目标或约束连续和混合整数二次问题

(4)含有对数、指数、三角函数、高阶多项式目标或约束,以及任何形式的分段约束的非线性问题

(5)含有绝对值、最大值、最小值、逻辑与或非目标或约束的非线性问题

Gurobi 技术优势:

(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

CBC

Cbc (Coin-or branch and cut) is an open-source mixed integer linear programming solver written in C++

项目地址 ​ ​https://github.com/coin-or/Cbc​

CPLEX

1988~2020年
CPLEX现在是IBM家的了
box@IBM 网盘地址 ​​ ​https://ibm.ent.box.com/s/p1g0mrjnb0rs6am5evuvndy8f7vsug3t​


CPLEX Optimizer 以在C 编程语言中实现的单纯形法命名,尽管今天它
还支持其他类型的数学优化并提供 C 以外的接口。它最初由Robert E. Bixby开发,并于 1988 年由 CPLEX 进行商业销售Optimization Inc. 于 1997 年被ILOG收购,随后 ILOG 于 2009 年 1 月被 IBM 收购。[2] CPLEX 继续由 IBM 积极开发。

SCIP成套优化工具

解决有限制的整数规划程序SCIP
2022年10月仍然在维护

​https://www.scipopt.org/​

XPRESS

官网地址
​​ ​https://www.fico.com/en/products/fico-xpress-optimization​

FICO Xpress优化器是用于线性规划(LP)、混合整数线性规划(MILP)、凸二次规划(QP)、凸二次约束二次规划(QCQP)、二阶锥规划(SOCP ) 及其它们的商业优化 求解器混合整数对应物。 Xpress 包括通用非线性求解器 Xpress NonLinear,包括连续线性规划算法(SLP,一阶方法)和Artelys Knitro(二阶方法)。

Xpress 最初由 Dash Optimization 开发,并于 2008 年被FICO收购。 它的最初作者是 Bob Daniel 和 Robert Ashford。第一个版本的 Xpress 只能解决 LPs;1986 年添加了对 MIP 的支持。Xpress 于 1983 年发布,是第一个在PC上运行的商业 LP 和 MIP 求解器。 1992年发布了用于并行计算的Xpress版本,5年后扩展到分布式计算。Xpress 是第一个通过在 2010 年引入 64 位索引来跨越十亿矩阵非零阈值的 MIP 求解器。 自 2014 年以来,Xpress 首次实现了并行对偶单纯形法的商业实现.

MATLAB

优化工具箱 WebURL
​​ ​https://www.mathworks.com/products/optimization.html​

你应该使用MATLAB的优化工具箱
Optimization Toolbox™ 提供了用于查找参数的函数,这些参数可以在满足约束的同时最小化或最大化目标。该工具箱包括用于线性规划 (LP)、混合整数线性规划 (MILP)、二次规划 (QP)、二阶锥规划 (SOCP)、非线性规划 (NLP)、约束线性最小二乘法、非线性最小二乘法、和非线性方程。

您可以使用函数和矩阵或通过指定反映基础数学的变量表达式来定义优化问题。您可以使用目标函数和约束函数的自动微分来获得更快、更准确的解决方案。

您可以使用工具箱求解器找到连续和离散问题的最佳解决方案,执行权衡分析,并将优化方法整合到算法和应用程序中。该工具箱可让您执行设计优化任务,包括参数估计、组件选择和参数调整。它使您能够在投资组合优化、能源管理和交易以及生产计划等应用中找到最佳解决方案。

SAS

官网地址 ​ ​https://www.sas.com/en_us/software/optimization/features-list.html​

代数、符号优化建模语言
灵活的代数语法,用于直观的模型制定。
支持透明使用 SAS 功能。
直接调用线性、混合整数线性、二次、非线性、二次曲线、黑盒、约束规划和网络求解器。
支持定制优化算法的快速原型设计,包括支持命名问题和子问题。
使用行业标准的 MPS/QPS 格式输入数据集。
积极的预求解器以减少有效的问题规模。
在一台机器或计算网格上同时解决独立问题。
自动线性化和指标约束。
强大的优化求解器
线性规划求解算法:
原始和对偶单纯形。
网络单工。
带交叉的内部点。
并发求解能力。
混合整数线性规划求解算法:
用切割平面进行分支定界。
原始启发式。
冲突搜索。
选项调整。
根节点(LP 松弛)算法选项。
报告最多 K 个最佳整数可行解或最多 K 个最优解。
用于线性规划和混合整数线性规划问题的分解算法(自动 Dantzig-Wolfe),具有用户指定或自动检测的块结构。
二次规划求解算法:内点采用最先进的求解器,专为大规模优化问题量身定制。
非线性规划求解算法:活动集、内点。并发求解能力。非凸问题的多启动算法。
诊断和优化算法包括:
连接组件和双连接组件(带有关节点)。
最大集团枚举。
循环枚举。
路径枚举。
传递闭包。
拓扑排序。
最大流量。
最小切割。
最小生成树。
最小成本线性分配。
最低成本的网络流量。
最短路径。
旅行推销员问题。
车辆路线问题。
汇总统计。
可以输入和处理每对节点之间的多个链接。
解决非线性函数的问题,这些函数可能是非光滑的、不连续的、不可连续可微的,等等。
混合并行算法,包括通用算法、全局 GA 类型启发式算法和模式搜索。多目标优化。
使用有限域约束规划解决约束满足问题,包括域缩减/约束传播和搜索策略的选择(前瞻和回溯)。找到一个、几个或所有可行的解决方案。可以选择指定目标函数并找到最佳解决方案(二分搜索方法)。
分布式、可访问和云就绪
优化求解器在 SAS Viya(一个可扩展的分布式内存分析平台)上运行。
跨多个计算节点分布分析和数据任务。
分布式计算特点:
PROC OPTMODEL 中非线性 (NLP) 求解器的多启动选项。
PROC OPTMODEL、PROC OPTMILP 中的分解算法(MILP)。
解决独立优化场景:PROC OPTMODEL 中的 COFOR 循环。
MILP 求解器的并发模式(PROC OPTMODEL、PROC OPTMILP)。
分支定界 MILP 求解器算法(PROC OPTMODEL、PROC OPTMILP)。
PROC OPTMODEL 中的黑盒优化。
PROC OPTNETWORK 中的路径枚举、最短路径和连接组件网络算法。
PROC OPTNETWORK 中网络算法中的 BY-group 处理。
提供对内存中数据的快速、并发、多用户访问。
包括高可用性的容错。
让您可以使用 SAS Viya REST API 将 SAS 分析的强大功能添加到其他应用程序。