在Nelder-Mead优化算法中选择初始单纯形

时间:2013-07-29 15:27:06

标签: mathematical-optimization simplex

从用户的'guess'顶点初始化用于Nelder-Mead单纯形搜索的单纯形的最佳方法是什么?

2 个答案:

答案 0 :(得分:7)

我不确定是否有最佳方式在Nelder-Mead方法中选择初始单纯形,但以下是通常的做法。

初始单纯形S的构造是通过在n+1中称为用户的“猜测”顶点x0,..,xn周围生成xin个顶点N获得的维度空间。最常见的选择是

x0=xin 

然后生成剩余的n个顶点,以便

xj=x0+hj*ej 

其中ejjR^n坐标轴的单位向量,而hjej方向的步长。

hj = 0.05    if (x0)j is non-zero
hj = 0.00025 if (x0)j=0

用(x0)j表示x0的第j个分量。请注意,这是Matlab的 fminsearch 例程中的选择,该例程基于Nelder-Mead方案。

您可以在

中找到更多信息

F. Gao, L. Han, "Implementing the Nelder-Mead simplex algorithm with adaptive parameters", Comput. Optim. Appl., DOI 10.1007/s10589-010-9329-3

答案 1 :(得分:2)

我认为没有一般规则可以最好地确定Nelder-Mead优化的初始单纯形,因为这至少需要对响应面的模糊知识。

然而,以这样的方式设置点是合理的策略,即单纯形覆盖几乎整个可能的范围。 Nelder-Mead的算法会自动缩小 单形和近似最佳。这项政策的实际优势在于您 将获得更好的响应函数的整体知识。

我们已经使用HillStormer("http://www.berkutec.com")进行了一些测试。该程序允许在testfunctons上测试这些策略,我们发现这个问题很有效。

请记住,第一次单面操作是一种反思。如果起始单形覆盖整个允许的范围,则反射必然会给出一个关闭点。但是HillStormer允许使用线性约束并且可以避免这个问题。

您可以在HillStormer的系统帮助中找到更多信息。

B中。 KUHNE