给定一个输入和输出值之间的转换,描述一个数学函数f,优化处理生成和选择一个最佳解决方案从一些组可用的替代方案,通过系统地选择输入值在一个允许集,计算的输出功能,录音过程中发现的最好的输出值。许多实际问题都可以用这种方法建模。例如,输入可以是电机的设计参数,输出可以是功耗,或者输入可以是业务选择,输出可以是获得的利润。
优化问题,在本例中是最小化问题,可以用以下方式表示
给定:一个函数f:一个{\displaystyle \to}\to R,从某个集合a到实数
搜索:A中的一个元素x0,使得f(x0)≤f(x)对于A中的所有x。
在连续优化中,A是欧氏空间Rn的某个子集,通常由一组约束、等式或不等式来指定,这些约束、等式或不等式是A的成员必须满足的。在组合优化中,A是离散空间的某个子集,如二进制字符串、排列或整数集。
优化软件的使用要求函数f用合适的编程语言定义,并在编译或运行时连接到优化软件。优化软件将在A中提供输入值,实现f的软件模块将提供计算值f(x),在某些情况下,还将提供关于函数的附加信息,如导数。
这样就得到了一个清晰的关注点分离:不同的优化软件模块可以很容易地在同一个函数f上进行测试,或者给定的优化软件可以用于不同的函数f。
下表提供了根据许可证和业务模型类型组织的值得注意的优化软件列表。
Free and open-source software
Applications
Software libraries
Proprietary software
- AIMMS,目标-优化建模系统,包括GUI建设设施。
- ALGLIB 具有c++和c#接口的双重许可(GPL/commercial)约束二次和非线性优化库。
- Altair HyperStudy-实验设计和多学科设计优化。
- AMPL 用于大规模线性、混合整数和非线性优化的建模语言。
- ANTIGONE 一个确定性全局优化MINLP求解器。
- APMonitor -面向大规模、非线性、混合整数、微分和代数方程的建模语言和优化套件,具有MATLAB、Python和Julia接口。
- Artelys Knitro 连续整数规划和混合整数规划的大规模非线性优化。
- ASTOS 航天弹道优化软件,用于发射,再入和一般航天问题。
- BARON代数非线性和混合整数非线性问题的优化。
- COMSOL Multiphysics -一个跨平台的有限元分析、求解和多物理仿真软件。
- CPLEX -整数、线性和二次规划。
- FEATool Multiphysics 功能多物理- FEA GUI工具箱的MATLAB
- FICO Xpress 整数、线性、二次和非线性规划。
- FortMP -整数、线性和二次规划。
- FortSP -随机规划。
- FICO Xpress 通用代数建模系统。
- FortMP 整数、线性和二次规划。
- HEEDS MDO -多学科设计优化使用SHERPA,混合,自适应优化算法。
- IMSL数值库——线性、二次、非线性和稀疏QP和LP优化算法,用标准编程语言C、Java、c# . net、Fortran和Python实现。
- IOSO 基于自组织的间接优化是一种多目标、多维的非线性优化技术。
- Kimeme -一个多目标优化和多学科设计优化的开放平台。
- LINDO -(线性、交互式和离散优化器)用于线性规划、整数规划、非线性规划、随机规划和全局优化的软件包。“什么最好的!”Excel外接程序使用LINDO执行线性、整数和非线性优化。
- LIONsolver—一个用于数据挖掘、分析、建模学习、智能优化和反应性商业智能方法的集成软件。
- modeFRONTIER -一个多目标、多学科优化的集成平台,与第三方工程工具无缝耦合,实现设计仿真过程的自动化,便于分析决策。
- Maple -线性,二次,非线性,连续和整数优化。约束和无约束。全局优化与附加工具箱。
- MATLAB -优化工具箱中的线性、整数、二次和非线性问题;多极大值、多极小值、非光滑优化问题;模型参数的估计与优化。
- MIDACO是一种基于进化计算的单目标和多目标优化的轻量级软件工具。用C/ c++和Fortran语言编写,具有Excel、VBA、Java、Python、Matlab、Octave、R、c#和Julia等网关。
- Mathematica-大规模多变量约束和无约束,线性和非线性,连续和整数优化。
- ModelCenter—用于集成、自动化和设计优化的图形化环境。
- MOSEK 线性,二次,圆锥和凸非线性,连续和整数优化。
- NAG 线性、二次、非线性、线性或非线性函数的平方和;线性、稀疏线性、非线性、有界或无约束;局部和全局优化;连续或整数问题。
- NMath 线性规划,二次规划和非线性规划。
- OptimJ 基于java的建模语言。高级版包括对gu罗比,Mosek和CPLEX解决方案的支持。
- Optimus平台- Noesis Solutions开发的流程集成与优化设计平台。
- optiSLang -基于cae的敏感性分析、优化和鲁棒性评估的软件解决方案。
- OptiY -一个提供现代优化策略和最先进的概率算法的设计环境,用于不确定性、可靠性、鲁棒性、敏感性分析、数据挖掘和元建模。
- OptiStruct获奖的CAE技术,用于概念设计综合和结构优化。
- PottersWheel -常微分方程参数估计(MATLAB工具箱,学术免费)。
- pSeven - DATADVANCE公司开发的工程仿真分析自动化、多学科优化和数据挖掘软件平台。
- SAS -由SAS高级分析研究所(统计、预测、机器学习、优化等)、商业智能、客户智能、数据管理、风险管理等开发的软件套件。
- SmartDO 智能多学科的全球设计优化,专门在计算机辅助工程(CAE)。使用直接全局搜索方法。
- SNOPT -大规模优化问题。
- The Unscrambler X -产品配方和工艺优化软件。
- TOMLAB 支持全局优化,整数规划,所有类型的最小二乘,线性,二次和无约束的MATLAB编程。TOMLAB支持gu、CPLEX、SNOPT、KNITRO和MIDACO等解决方案。
- VisSim—一种用于动态系统仿真和优化的可视化框图语言。
- WORHP 一个大规模的连续非线性优化稀疏求解器。
Freeware/free for academic use
- AIMMS
- AMPL
- APMonitor -免费的学术和商业用途一样,与朱莉娅,Python和MATLAB集成。
- ASTOS
- CPLEX
- Couenne——一个开源的解决方案,用于在Eclipse公共许可证下授权的MINLPs的确定性全局优化。
- FICO Xpress
- Galahad library
- GEKKO Python
- Gurobi
- LIONsolver
- MIDACO一个基于进化计算的数值优化软件包。
- MINTO采用分枝定界算法求解整数规划问题;个人使用的免费软件。
- MOSEK -一个大规模的优化软件。解决线性、二次、圆锥和凸非线性、连续和整数优化问题。
- OptimJ 基于java的建模语言;免费版包括对lp_solve、GLPK和LP或MPS文件格式的支持。
- PottersWheel-常微分方程参数估计(学术用免费MATLAB工具箱)。
- SCIP -免费给非商业和学术机构的成员,用于研究目的。
- WORHP
另请参阅
- 优化软件比较
- 计算机代数系统列表
- 约束编程语言列表
- 数值库一览表
- 优化算法列表
- SMT解决程序列表