强制设计变量边界的最严格方法是什么?

时间:2018-05-23 14:17:33

标签: openmdao

我可以看到我的设计变量超出了它的极限。 (在这种情况下使用COBYLA)

我有一个带有单个设计变量的样本设置,其中最佳值约为0。

我设置'lower = 0'。

我希望这是一个非常严格的限制,因为负值会为我的求解器产生NaN。

优化器即  1,2,0,-0.125000000e-01,-1.56250000e-02,-1.95312500e-03,-2.44140625e-04 -3.05175781e-05,-3.81469727e-06,-5.00000000e-07

我猜这是依赖于优化器类型的吗?但有没有一种方法可以更严格地执行。

1 个答案:

答案 0 :(得分:1)

不幸的是,COBYLA并不严格尊重变量边界(see scipy docs)您可以做的最好是将它们添加为线性约束,并尝试在最佳点强制执行它们。

但你可以试试SLSQP。它严格遵守界限。