美文网首页
NLopt里面的算法

NLopt里面的算法

作者: 布织岛 | 来源:发表于2019-03-12 03:17 被阅读0次

Nlopt包含很多优化算法。NLopt中的每个算法都由命名常量标识,被传入NLopt中。

These constants are mostly of the formNLOPT_{G,L}{N,D}_xxxx, whereG/Ldenotes global/local optimization andN/Ddenotes derivative-free/gradient-based algorithms, respectively.

For example, theNLOPT_LN_COBYLAconstant refers to the COBYLA algorithm (described below), which is a local (L) derivative-free (N) optimization algorithm.

Comparing algorithms这里讲了如何对优化算法进行比较。

下面先列举一下NLopt包含了哪些全局优化算法,哪些局部搜索算法。(列举完之后反思一下该怎么选择优化算法。然后思考一下怎么使用。)

Global optimization

All of the global-optimization algorithms currently require you to specify bound constraints on all the optimization parameters.

Of these algorithms, only ISRES, AGS, and ORIG_DIRECT support 非线性不等式约束, and only ISRES supports 非线性等式约束. 但它们都能与augmented Lagrangian method结合来解决非线性约束问题。

做完全局搜索完之后,最好以全局搜索的结果作为起点,再进行局部搜索。这里的全局搜索算法花很多精力在search parameter space上,而没有特别认真在寻找局部最佳的确切位置。

1 DIRECT and DIRECT-L (Most of the above algorithms only handle bound constraints, and in fact require finite bound constraints (they are not applicable to unconstrained problems). They do not handle arbitrary nonlinear constraints. However, theORIGversions by Gablonsky et al. include some support for arbitrary nonlinear inequality constraints.)

2 Controlled Random Search (CRS) with local mutation (Only bound-constrained problems are supported by this algorithm.)

3 MLSL (Multi-Level Single-Linkage) (Only bound-constrained problems are supported by this algorithm.)

4 StoGO (Only bound-constrained problems are supported by this algorithm.)

5 AGS (AGS can handle arbitrary objectives and nonlinear inequality constraints. Also bound constraints are required for this method. )

6 ISRES (Improved Stochastic Ranking Evolution Strategy) (This method supports arbitrary nonlinear inequality and equality constraints in addition to the bound constraints)

7 ESCH (evolutionary algorithm) (The method supports bound constraints only (no nonlinear constraints))

Local derivative-free optimization

Of these algorithms, only COBYLA currently supports arbitrary nonlinear inequality and equality constraints非线性不等式和等式约束; the rest of them support bound-constrained or unconstrained problems only. (However, any of them can be applied to nonlinearly constrained problems by combining them with theaugmented Lagrangian methodbelow.)

1 COBYLA (Constrained Optimization BY Linear Approximations) (The underlying COBYLA code only supports inequality constraints. Equality constraints are automaticallytransformed into pairsof inequality constraints, which in the case of this algorithm seems not to cause problems.)

2 BOBYQA (BOBYQA performs derivative-free bound-constrained optimization using an iteratively constructed quadratic approximation for the objective function.)

3 NEWUOA + bound constraints (permits efficient handling of bound constraints. This algorithm is largely superseded by BOBYQA (above))

4 PRAXIS (PRincipal AXIS)

5 Nelder-Mead Simplex

6 Sbplx (based on Subplex)

Local gradient-based optimization

Of these algorithms, only MMA and SLSQP support arbitrary nonlinear inequality constraints任意非线性不等式约束, and only SLSQP supports nonlinear equality constraints非线性等式约束; the rest support bound-constrained or unconstrained problems only. (However, any of them can be applied to nonlinearly constrained problems by combining them with theaugmented Lagrangian methodbelow.)

1 MMA (Method of Moving Asymptotes) and CCSA

2 SLSQP (this is a sequential quadratic programming (SQP) algorithm for nonlinearly constrained gradient-based optimization (supporting both inequality and equality constraints))

3 Low-storage BFGS

4 Preconditioned truncated Newton

5 Shifted limited-memory variable-metric

Augmented Lagrangian algorithm

NLopt中有一种算法适合所有上述类别,具体取决于指定的辅助优化算法. This method combines the objective function and the nonlinear inequality/equality constraints (if any) in to a single function.

相关文章

  • NLopt里面的算法

    Nlopt包含很多优化算法。NLopt中的每个算法都由命名常量标识,被传入NLopt中。 These consta...

  • Nlopt的算法implementation

    1 怎么选择合适的算法 2 每个不同的算法,调用的函数有哪些,先后步骤? 3 如果没有constraint呢?

  • 2021-05-22 NLopt的安装

    原始文档 https://nlopt.readthedocs.io/en/latest/NLopt_Install...

  • NLopt的SLSQP算法implementation

    参考来源:https://blog.csdn.net/potxxx/article/details/80743146

  • HeFESTo

    dependency : nlopt LAPACK BLAS already installed in mac a...

  • 计数排序的稳定性

    这是算法导论里面的算法,排序算法是稳定的。 思考: 为什么9~11的for循环里要倒着遍历?这样倒着遍历,而且放进...

  • Paxos算法

    Basic-Paxos算法(可以先看后面的实际例子再看前面的具体介绍部分) Paxos算法的目的 Paxos算法的...

  • C++快速排序(算法),小白必备!拿走不谢!

    <算法导论>上面的算法逻辑 QUICKSORT(A, p, r)//快速排序算法 if (p < r ) { q ...

  • 红黑树

    首先说明一点,这里实现的红黑树,和《算法》(第四版)里面的算法是一样的,不是按照《算法导论》里面的红黑树算法写的。...

  • 我的机器学习入门经历

    0x00 公司里有个算法部门,人很少,但都是精英。机缘巧合,算法部门的大神推荐了我Cousera上面的机器学习课程...

网友评论

      本文标题:NLopt里面的算法

      本文链接:https://www.haomeiwen.com/subject/gjywpqtx.html