OpenMDAO + PyOptSparse SLSQP 边界

问题描述

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

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...