openmdao - 在 Openmdao 中使用 APPT (MINLP) 求解器
问题描述
我有一个混合整数非线性问题。我不想使用任何惩罚方法,所以我在 Openmdao 中寻找 MINLP 求解器。是否可以在 openmdao 中使用 APPT 求解器?它在 pyoptsparse 驱动程序中不可用。还有其他选择吗?如果不是,我应该如何在 openmdao 中实施 APPT?
解决方案
使任何优化器可用于 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 是实际将其注册为插件所必需的。
推荐阅读
- python - 在 pyspark 中读取 TSV 文件
- ios - 如何在 HERE MAP iOS SDK 中获取特定国家/地区的结果(仅适用于英国)?
- spring - 带有 OAuth2 的 Spring Security 丢失会话
- c++ - 如何知道何时调用析构函数?在 C++ 中
- vue.js - Vue-router 组件内保护不会触发 router.push() 被调用
- php - PrestaShop Block 特价商品显示缺货的产品
- c# - 如何在 WinForms 应用程序中使用 Salesforce OAuth 2.0 隐式流验证?
- yocto - 在 YOCTO 上启用 iproute2 包的 'tc'
- javascript - 如何提取html响应中第一段的内容 react native
- netlogo - NetLogo 中变量的最大整数值