用于约束优化的Nelder Mead算法?

时间:2017-01-03 16:44:50

标签: optimization mathematical-optimization simplex

我读过Nelder Mead算法正在进行无约束优化。 http://www.scholarpedia.org/article/Nelder-Mead_algorithm 我认为在Matlab中,Nelder Mead也用于无约束优化。 但是,我有点困惑,因为我发现了一个用于优化的Java API http://www.ee.ucl.ac.uk/~mflanaga/java/Minimisation.html (弗拉纳根科学图书馆) 它有一个实现Nelder Mead单纯形的类,允许定义约束和边界。 那么,在Flanagan的API中实现的版本是经典"经典的#34; Nelder Mead算法?

2 个答案:

答案 0 :(得分:4)

看起来API正在实现一个简单的“软”约束系统,其中约束被转换为惩罚函数,严重惩罚约束之外的区域。这是一种为无约束求解器添加约束的廉价而愉快的方法,但在最优性,收敛性和约束满足程度之间会存在权衡。

答案 1 :(得分:-1)

查看HillStormer [1],这是一个允许Nelder-Mead线性约束的(免费)软件。您将发现使用线性约束可以使用较少的步骤来改进优化,从而允许单一的约束退化,然后恢复它。此外,该软件还包含一个“测试模式”,允许您组合响应曲面并在之后以图形方式显示优化。您可以在[1]下载它:http://www.hillstormer.es