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

11

如何最好地初始化一个单纯形以供用户“猜测”的顶点在Nelder-Mead单纯形搜索中使用?


更多信息请参见:https://link.springer.com/article/10.1007/s11590-022-01953-y - craigB
2个回答

18

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

构建初始单纯形S的方法是在N维空间中围绕用户的“猜测”顶点xin生成n+1个顶点x0,..,xn。最常见的选择是:

x0=xin 

剩余的n个顶点是这样生成的:

and the remaining n vertices are then generated so that

xj=x0+hj*ej 

其中ejR^n中第j个坐标轴的单位向量,hj是朝着ej方向的步长。

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

在(x0)的j-th元素中,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中找到更多信息。


3
我认为无法确定 Nelder-Mead 优化的初始单纯形最佳选择,因为这至少需要模糊了解响应曲面。
然而,将点设置在单纯形几乎覆盖整个可能范围的方式可能是一个合理的策略。Nelder-Mead 算法会自动缩小单纯形并逼近最优解。这种策略的实际优点是,您将获得更好的响应函数整体知识。
我们已经对 HillStormer("http://www.berkutec.com")进行了一些测试。该程序允许在测试功能上测试这些策略,我们发现这种策略效果相当不错。
请记住,第一个单纯形操作总是反射。如果起始单纯形覆盖整个允许范围,则反射必然会给出一个越界点。但是 HillStormer 允许使用线性约束并避免此问题。
您可以在 HillStormer 的系统帮助中找到更多信息。
B.Kühne

1
该页面已经不存在了。 - Leos313

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接