首页 > 解决方案 > 在 Openmdao 中使用 APPT (MINLP) 求解器

问题描述

我有一个混合整数非线性问题。我不想使用任何惩罚方法,所以我在 Openmdao 中寻找 MINLP 求解器。是否可以在 openmdao 中使用 APPT 求解器?它在 pyoptsparse 驱动程序中不可用。还有其他选择吗?如果不是,我应该如何在 openmdao 中实施 APPT?

标签: openmdao

解决方案


使任何优化器可用于 OpenMDAO 的第一步是使其在 Python 本身中可访问。看起来 APPT 可以通过GEKKO 库在 Python 中使用。所以第一步是让你得到那个库,并弄清楚如何使用它。

然后就可以在OpenMDAO中编写一个集成GEKKO的驱动了。为此,您将编写自己的插件来包装 GEKKO。您可以搜索openmdao github 主题以查看一些示例的现有插件列表(您可以为任何东西制作插件,而不仅仅是驱动程序)

一个示例驱动程序插件是NLopt 库的 OpenMDAO 包装器,由国家可再生能源实验室编写。 https://github.com/johnjasa/nrel_openmdao_extensions/blob/master/nrel_openmdao_extensions/nlopt_driver.py

实际的驱动程序代码在这里,但完整的 repo 是实际将其注册为插件所必需的。

您还可以查看 MINLP 算法AMIEGO,该算法也可作为插件使用。您可以在本文中详细了解它。


推荐阅读