openmdao - 约束处理、整数和并行优化
问题描述
我最近被分配到一个项目,该项目将在 python 中开发优化工具。
各种在线搜索指出,有多个库/平台各有利弊。据我查阅现有的 openmdao 框架,我们无法拥有一个可以进行约束处理、混合整数、并行优化的优化器。这里的并行意味着每次迭代都应该像在 GADriver 中那样并行化。考虑到 openmdao 未来可能的改进,我想向开发人员征求一些建议:
考虑为可以处理上述请求的现有优化器编写一个包装器是一个好主意,还是应该完全退出 openmdao,因为 openmdao 可能不是这个特定问题中最强大的平台?
如果编写包装器是一个好主意,我认为应该在 openmdao 2.2.X github 中查找驱动程序例程。您对 python 中的优化器类型(付费或免费)有什么建议,可以轻松与 openmdao 兼容。
解决方案
AIAA 有一篇题为“考虑航空公司运营和经济的下一代飞机设计”的论文,描述了当前对混合整数规划问题的最新研究。这里的方法使用了一种混合方法,该方法利用 OpenMDAO 的基于梯度的高效功能来处理大量连续设计变量。
一般来说,混合整数规划没有限制。您只需要编写自己的驱动程序来处理它。这些算法很复杂,但 SimpleGADriver 是一个不错的起点,可以开始了解如何并行运行模型。
推荐阅读
- c# - 方法“CommonCreateArrayTypeSymbol”没有实现
- javascript - 使用firebase在点击时显示详细信息
- google-bigquery - 具有数组字段的 bigquery 表中的不同行
- c - 执行这个程序时会创建多少个子进程?
- python - jupyter实验室单元中循环内的输入
- c# - 需要在 MessageBox 中显示一个数组,其中包含作业名称的行和学生姓名的列
- .net - 在 Visual Studio 中生成纯 GUID
- javascript - iframe 上的“ScrollBy”可生成无限循环的嵌入式网页
- ruby-on-rails - 我的 rails 应用程序不使用 gem geocoder 显示地图
- c++ - 如果我的班级正确管理资源,那么拥有智能指针有什么意义?