摘自: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

  • List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm
  • There was a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.
  • 'Decision tree' for optimization software http://plato.asu.edu/sub/nlores.html
  • Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html

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:

  • COOOL

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:

  • QPOPT (dense)

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

  • BARON
  • GANSO

Methods not yet checked:

  • IMSL and NAG software libraries

More to come

Mixed integer/nonlinear programs:

  • DICOPT: MINLP

See also Survey of sparse matrix software

非常详细的优化问题求解器列表相关推荐

  1. SLAM Cartographer(18)后端优化问题求解器

    SLAM Cartographer(18)后端优化问题求解器 1. 全局优化 2. 提供数据 3. 后端优化器 4. 求解过程 4.1. 定义优化问题 4.1.1. 子图全局位姿 4.1.2. 节点全 ...

  2. 优化求解器 | Gurobi的MVar类:矩阵建模利器、求解对偶问题的备选方案 (附详细案例+代码)

    优化求解器 | Gurobi的MVar类:矩阵建模利器.求解对偶问题的备选方案 优化求解器的建模方式:以gurobi为例 Gurobi的MVar(矩阵形式变量对象) 一个线性规划的例子:Wyndor玻 ...

  3. c++调用cplex求解例子_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)

    编者按 优化求解器对于做运筹学应用的学生来说,意义重大. 然而直到今天,放眼望去,全网(包括墙外)几乎没有一个系统的Cplex中文求解器教程. 作为华人运筹学的最大的社区,『运筹OR帷幄』 责无旁贷, ...

  4. 优化着色器信息加载,或查看Yer数据!

    A story about a million shader variants, optimizing using Instruments and looking at the data to opt ...

  5. SLAM编程:优化问题求解(1)_程序设计

    SLAM编程:优化问题求解(1)_程序设计 前言 一.大量的问题都是优化问题 二.如何以朴素理论手写优化问题的程序 1.程序总体设计 2.编写大循环:更新参数并输出信息 3.编写小循环:前向传播,计算 ...

  6. 为什么lp的最优解是一个概率_什么时候应该用概率图模型、消息传递替代传统组合优化求解器?未来工作?(持续更新)...

    相关基础:概率图模型中的推断https://zhuanlan.zhihu.com/p/252169479 英文原文:https://tspace.library.utoronto.ca/bitstre ...

  7. android源生setting华为,Android 设置默认桌面,默认应用,辅助功能,电池优化,设备管理器,悬浮窗等...

    Android 部分系统设置桌面,默认应用,辅助功能,电池优化,设备管理器,悬浮窗,有权限查看使用情况,开机自启动,锁屏不清理等 部分功能适配了华为手机与小米手机. 设置默认桌面: //华为手机上 I ...

  8. [html] 如何优化大数据列表(10万+)的性能?说说你的方案

    [html] 如何优化大数据列表(10万+)的性能?说说你的方案 定时器批量绘制, 过滤,查询使用serviceWorker ? 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持 ...

  9. newuoa matlab包,PDFO首页、文档和下载 - Powell 无导数优化求解器

    PDFO(Powell's Derivative-Free Optimization solvers,Powell 无导数优化求解器)为 Michael J. D. Powell 的无导数优化求解器提 ...

最新文章

  1. centos7.9 配置nginx实现前后端分离
  2. (step8.2.6)hdu 1848(Fibonacci again and again——组合博弈)
  3. linux c 头文件,linux下的头文件 及C/C++头文件 一览表
  4. 安卓开发 底部导航图标切换时动画效果_安卓10系统终于来了,流畅度堪比苹果?...
  5. 算法-----数组-----移除特定元素
  6. 为什么面试你要35K,而HR只给你25K...
  7. 常用 Git 命令清单(转)
  8. 计算机网络基础ios指令,蔡少云——计算机网络实验:IOS命令基础及交换机基本配置.doc...
  9. 简单了解static
  10. linux date fmt,date_format(date,frm) 详解
  11. Oracle基础 游标
  12. 没有业务思维,数据分析只能是一堆废纸
  13. oracle dg apply lag,Oracle数据库 DGbroker三种保护模式的切换
  14. 使用 LaTeX 绘制 PGM(Probabilistic Graphical Models)中的贝叶斯网络(bayesian networks)
  15. Lire对图片进行索引
  16. 动态规划系列-连续的子数组和(leetcode523)
  17. 【转】杜月笙识人秘诀!!
  18. SPSS23第二版课后习题答案_全新版大学进阶英语综合教程3 Unit1unit3课后习题答案...
  19. Unity2D动画生成操作(简单)
  20. Mac Xcode 更改编辑器文本字体大小

热门文章

  1. 北京2008福娃2图标
  2. uniapp h5 发行
  3. 3G无线上网分析、优惠以及推荐选择
  4. 获取当前年份前后各五年的数据与双击选中方法的使用
  5. 实习入职这几天天的感受与感想
  6. 为什么时钟信号比数据信号更容易引起辐射超标
  7. Debug Mac M1/M2 tensorflow:Could not find a version that satisfies the requirement tensorflow
  8. 黑苹果卡在苹果logo_不是买不起白苹果iMac,有的地方白苹果也比不上黑苹果
  9. k8s集群唯独一个节点nodeport不通问题调查
  10. 报错与解决 | AttributeError: ‘Series‘ object has no attribute ‘set_value‘