优化器总结

小编 2026-07-06 阅读:1590 评论:0
摘自:https://blog.csdn.net/qinghai5068/article/details/49745347 http://ascend4.org/Survey_of_optimisatio...

摘自:https://blog.csdn.net/qinghai5068/article/details/49745347

http://ascend4.org/Survey_of_optimisation_software

Survey of optimisation software

The following is a survey of optimisation software that was performed as a part of our effort to identify options for a Non-proprietary Optimisation solver for ASCEND. Feel free to add any that we\'ve missed.

List of NLP solvers: http://www.ici.ro/camo/hnp.htmList of Lists

Free Open Source Software options

  • IPOPT (LGPL) \'Interior-Point Filter Line-Search Algorithm\'. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also IPOPT in this wiki.
  • MOOCHO (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.
  • GSL \'multimin\' (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.
  • OPT++ (free, includes optional wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?
  • APPSPACK (GPL?) \'asynchronous parallel generating set search\', derivative-free.
  • CONMIN (\'free\' but where from?) \'two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts\'.
  • SGOPT (LGPL) Evolutionary and pattern-search algorithms
  • OPTPACK (PD) \'a dual algorithm for constrained optimization\'
  • MINPACK (BSD-like) unconstrained
  • BonMin (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.
  • Couenne (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.
  • ALGENCAN (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called \'GENCAN\'
  • SPG (GPL) for smooth function with convex constraint
  • NOMAD (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems
  • LBFGS-B (PD?) limited-memory quasi-Newton code
  • NLopt (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms
  • SolvOpt (PD) \'method of exact penalisation\', based on N.Z. Shor r-algorithm
  • ralg (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems


Metaheuristics

  • popot (new BSD license) a C++ Template based library for population based optimization. It includes various population-based optimization algorithms such as particle swarm, ant colonies, evolutionary strategies.
  • HeuristicLab (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  • GenOpt (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java
  • JSwarm-PSO (GPL) a Particle Swarm Optimization package written in Java
  • ecpsy (GNU) a framework for creating evolutionary computations in Python
  • PSO TOOLBOX (GPL) a Particle Swarm Optimization implementation in Matlab


Wrappers

  • NLPAPI (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.
  • GAMSlinks (GPL?) a wrapper for COIN-OR solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.
  • AMPL/LANCELOT a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.
  • CUTEr (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.
  • OSI (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.
  • OS (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem \'servers\' and solver \'clients\', with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.
  • OpenOffice.org\'s Solver
  • OpenOpt (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.
  • PuLP (MIT license) a Python interface for expressing and solving LP problems.
  • RIMA (MIT license) a Lua interface for expressing and solving LP and MILP problems using CBC, CLP and lpsolve.


Unknown:

Another free list: [1]

There are some more listed in the nonlinear-programming-faq.

Free for non-commercial use

Trust region

  • LANCELOT (no redistribution or resale) Trust region method, adapt for bound constraints

Active set

  • TRON (permission to copy and modify, but only to be used for \'internal research\' (download) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for \'box\' constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?

Sequential quadratic programming

  • DONLP2 (dense; free for non-commercial purposes)

Some proprietary alternatives

Generalised reduced gradient method:

  • CONOPT (plus others in certain cases)
  • MINOS (uses GRG for linear constraints, else \'sparse SLC algorithm (a projected Lagrangian method, related to Robinson\'s method)\' for nonlinear constraints. Used when gradient evaluation is cheap.
  • MS Excel Solver.
  • GRG2
  • LSGRG2
  • LGO \'Lipschitz Global Optimizer\'

Sequential quadratic programming:

  • SNOPT (sparse) Used when gradient evaluation is expensive. \'SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.\'
  • NLPQLP
  • NPSOL
  • LSSOL (dense, \'two-phase (primal) quadratic programming\')
  • LOQO (free 30-day trial) \'LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem\'
  • FilterSQP

Active set method:

Other methods:

  • KNITRO (three methods: interior point direct, interior point conjugate gradient, \'active set\')
  • PATHNLP. \'PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems\'. Supposedly good for convex problems.
  • MOSEK (limited version available for download, or free student license) Interior point method plus simplex method.
  • PENNON \'penalty method\', \'PBM method of Ben-Tal and Zibulevsky\'

Global optimisation

Methods not yet checked:

  • IMSL and NAG software libraries

More to come

Mixed integer/nonlinear programs:

See also Survey of sparse matrix software

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
标签列表