具有平坦区域的函数的无导优化

计算科学 优化
2021-12-25 10:39:55

我正在尝试对一维黑盒函数进行无导数最小化。到目前为止,我一直在使用 NLopt 中实现的 BOBYQA函数的形状如下所示:

在此处输入图像描述

显然,在这里给出一个好的初步猜测将有很大帮助,因为我可以避免图形右侧令人讨厌的平坦区域。然而,有时一个好的初始猜测是不可用的,它可能最终出现在平坦区域,因此永远找不到最小值。

  • 是否有任何提示/技巧可以完全避开/避开平坦区域?
  • 一个简单的斐波那契/黄金分割搜索会更好吗?
  • 还是我的时间最好花在做出好的初步猜测上?
2个回答

以下适用于任何维度:

如果您的初始猜测不佳X0仅(但在完全平坦区域之外),最小化F(X)+Cķ||X-Xķ||2为了ķ=0有一些小C0,调用结果X1, 并以强递减的序列迭代Cķ的。在很多情况下C1=0已经可以了。

在您的特定情况下,您可以考虑将X通过将问题替换为以下内容来改变变量:find是的以便F(e是的)是最小的。本质上,您将长尾压缩到右侧,从而使其梯度更陡峭。