OpenMDAO + PyOptSparse SLSQP 边界

OpenMDAO + PyOptSparse SLSQP Bounds

在 OpenMDAO 中使用 SciPyOptimize SLSQP 驱动程序时,设计变量的界限似乎被严格强制执行(即优化器似乎从未选择超出这些界限的值)。然而,对于 PyOptSparse SLSQP 驱动程序,边界仍被视为约束,但它似乎确实试图评估边界外的情况。有没有办法强制 PyOptSparse 驱动程序在这个意义上表现得更像 SciPyOptimize 驱动程序?

尽管都具有 SLSQP 名称,Scipy 和 pyoptsparse 使用不同的算法实现。 Scipy 几年前更新了更严格的边界执行,但 pyoptsparse 中的那个不是。

要解决此问题,需要有人花一些时间更新 SLSQP fortran 代码 pyoptsparse 本身。雅各布·威廉姆斯 (Jacob Williams) 在创造 updated SLSQP codebase 方面做得不错。也许您可以与他合作,将他的算法版本添加到 pyoptsparse。