首页 > 解决方案 > OpenMDAO + PyOptSparse SLSQP 边界

问题描述

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

标签: openmdao

解决方案


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

为了解决这个问题,有人需要花一些时间来更新 SLSQP fortran 代码 pyoptsparse 本身。Jacob Williams 在创建更新的 SLSQP 代码库方面做得不错。也许您可以与他合作,将他的算法版本添加到 pyoptsparse。


推荐阅读