具有线性约束(单纯形)的离散目标函数的无导数非线性优化

计算科学 约束优化
2021-12-22 13:19:59

我正在尝试使用离散的非线性目标函数优化约束问题。评估这个函数也相当昂贵。尽管如此,尽管有上述两个因素,我希望它仍然可以有效地解决,因为约束参数空间的结构应该是有帮助的。

更准确地说:参数空间通常为 4-150 维。参数位于 n-单纯形上,即:

i=1npi=1pi0i=1,,n

现在我的问题是:哪种算法最适合解决此类问题?

到目前为止,我已经尝试了以下变体:

  • 约束空间1εi=1npi1,ε>0然后应用结合 Nelder-Mead 算法的自适应障碍法(R constrOptim 函数)

  • 应用无约束优化Rn通过修改目标函数,以便在第一步中适当地标准化参数。

  • 将单纯形映射到单位球体。然后使用Nelder-Mead、Subplex算法或基于球坐标的协方差矩阵自适应进化策略(CMAES)算法进行无约束优化。

到目前为止,CMAES 之后的球坐标显示出最好的结果,但它太慢了。我还能尝试什么?

2个回答

一般来说,对于无导数优化,没有一种算法对所有问题都最有效,尽管有些算法往往比其他算法效果更好。最近关于无导数优化的经典评论参考是Rios 和 Sahinidis(另见Sahinidis的相关演示文稿,他们建议使用MCS 算法LGO 算法(专有实现)和 BOBYQA/NEWUOA(两者均由

无导数方法往往不包含一般约束。如果您使用的方法不允许您的线性约束,您可以像现在一样对参数进行归一化,或者您可以使用更多的障碍类型方法并使用惩罚项来惩罚违反约束的行为和在多次求解中增加惩罚参数。

除了 Geoff 的答案,您还可以消除线性约束。“缓和”1εipi1确实产生的问题比它解决的问题多,因为它让你在一个n然而,在一个方向上非常窄的维度域。更好的选择是更换pn=1i=1n1pi无处不在并添加约束i=1n1pi1到您的不平等约束列表。这样,您可以简单地用公正的方式表达一切n1变量。本质上,您现在正在优化n1单纯形。