优化求解器(optimization solver)是一种用于求解数学优化问题的软件工具或库。数学优化问题的目标是在给定约束条件下找到一个目标函数的最优解(最大值或最小值)。优化问题在许多领域都有广泛应用,如运筹学、工程、经济学、物流、能源、金融等。
中文名:优化求解器
外文名:Optimization Solver、Optimizer
所属学科:应用数学
优化求解器(optimization solver)是一种用于求解数学优化问题的软件工具或库。优化求解器的主要任务是根据用户提供的数学模型(目标函数和约束条件)来寻找最优解。
数学优化问题是:在给定约束条件下,找到一个目标函数的最优解(最大值或最小值)。
如果您是初学者,可看我另外一篇博客,快速入门了解什么是优化问题:
https://blog.csdn.net/wuyoy520/article/details/134204450
这里举例一个优化问题:
电商平台要为一家新兴手游公司进行广告推广,平台有两种广告类型可供选择:类型A、类型B、类型C。广告类型A的转化率为5%,每投放一次费用为10元;广告类型B的转化率为8%,每投放一次费用为15元; 广告类型B的转化率为7.7%,每投放一次费用为12元。手游公司需要至少获得1000次投放,并且总费用不能超过20000元。每种类型广告都希望至少投放5次。平台希望最大化累计转化数,要如何规划广告投放?
- 图片内容和公式来自MindOpt新发布的基于大模型的AI工程师生成的内容截图。
最后用优化求解器算得的解是:
广告类型A投放次数=5
广告类型B投放次数=6
广告类型C投放次数=1655
目标函数值 = 128.165
优化问题在运筹学、工程、经济学、物流、能源、金融等许多领域有应用。属于底层的数学技术, 应用面很广。在航空、航天、国防等也有应用。
对应的求解优化问题的优化求解器可以广泛应用于电力系统调度、生产计划、物流路径规划、投资组合优化等多个领域。使用优化求解器可以帮助用户更方便、更快速地找到问题的最优解。
推荐可以去阿里达摩院求解器的案例广场看看,了解应用场景,和对应的简单的数学模型、源代码。
其求解方法有:单纯形法、内点法、分枝定界法、梯度下降法、遗传算法等。
在大学的运筹学课程里,一般会教求解线性规划(LP)需要的单纯形法,和求解带整数的线性规划(MILP)的分支定界法。
在实际业务里,一般情况下不太需要关心求解的方法,是借助工具来完成计算。更多地是需要了解不同算法计算的复杂度,是否能快速求解,如果不能,如何变更优化问题,使得能快速求解。
建议:求解方法这个知识点,仅作科普了解,更多地去准确描述好自己的优化问题是什么类型的问题,然后熟悉求解优化问题的工具,了解工具是否适合计算自己的优化问题。比如现在我们并不需要关心计算机是通过什么原理算出来了3+5=8,更多地去了解如何使用它。但是如果您刚好是这类计算工具的开发者,就需要查询相关的资料来学习。
选什么工具来计算,需要调研选择合适的。如根据优化问题的类型,优化求解器可以分为多种类型。比如线性规划、非线性规划、整数规划、混合整数规划等各自类别求解器。大部分商用优化求解器会将各种求解能力组合,可以处理多种类型的优化问题,包括线性、非线性、整数和混合整数优化等;同时实现自动化求解,用户只需提供数学模型,优化求解器会自动选择合适的算法并寻找最优解。
在选择或者研究求解器时,一般会评估如下特性:
- 是否能求解
- 求解速度
- 稳定性
- 大规模问题求解能力和计算资源占用
- 接口易用性
优化求解器的软件有很多。每家的侧重点会不一样,主流都是具备数学规划的求解能力,有的会集成约束规划、黑盒优化等能力。
开源的求解器和商用的求解器的差异主要是求解速度、可求解问题的类型。速度差异可能有几百倍。
在很多限时要求高的场景,比如互联网、机器人的行业,建议直接用商用求解器(有的厂商提供免费版),直接体验高速版本验证方案效果。毕竟研发方案期间最耗时的是业务的数学建模,不要因为用错计算工具浪费太多时间浪费方案。就相当于,开发一个方案的一开始,先上一个高性能的电脑试试可行性,后面确认可行后,再研究怎么换芯片降成本。
7.1. 国际上
国际上的优化软件起步很早,可以追溯到上世纪80年代。特别是商用的软件,积累了很多客户的经验,软件更稳定;且很少有研发的方案泄露出来,技术保密的很好,性能领先。
国际上的优化求解器(仅列出常见的、且有软件下载地址的):
- CPLEX:美国/IBM。网址:https://www.ibm.com/cn-zh/products/ilog-cplex-optimization-studio。 IBM的老牌产品,历史悠久,企业用户多。
- Gurobi:美国/Gurobi。网址:https://www.gurobi.com。当前世界顶尖的求解器,部分成员曾任职CPLEX,MILP的性能国际第一。
- Xpress:加拿大/FICO。网址:https://www.fico.com/en/products/fico-xpress-optimization
- Mosek:丹麦/Mosek。网址:https://www.mosek.com
- LocalSolver:法国/LocalSolver。网址:https://www.localsolver.com/
- LINGO:美国/LINDO。网址:https://www.lindo.com/index.php/products/lingo-and-optimization-modeling
- COIN-OR:开源组织,收录了很多种不同的开源求解器。网址:https://www.coin-or.org
- SCIP:开源的求解器。网址:https://www.scipopt.org
- GLPK:开源的求解器。网址:https://www.gnu.org/software/glpk
7.2. 国产的
从15年后,国内多个团队开始逐步开始研发求解器模块。并且在19年20年,有商业公司的加入,研发的软件更稳定。
国内的优化求解器(仅列出有软件可供下载使用的公司):
-
MindOpt:中国/阿里巴巴达摩院。网址:https://opt.aliyun.com 。根据网页指引,直接在阿里云产品平台https://help.aliyun.com/document_detail/298275.html 下载软件和获取免费License。当前支持LP、MILP、CQP、SDP这些数学规划求解,和仿真优化 (零阶优化、黑盒优化,可用于调参)。
- 新手推荐用MindOpt线上的平台,不需要安装直接先学会使用,Notebook中直接码代码,上手学习更快捷。还有自研的代数建模语言、以及AI技术结合开发、大模型技术结合自动建模和码代码的方案,更贴合现代的AI+运筹结合的技术趋势。