约束处理、整数和并行优化
Constraint handling, integer & parallel optimization
我最近被分配到一个项目,该项目将在 python 开发优化工具。
各种在线搜索指出有多个 libraries/platforms 有利有弊。据我了解现有的 openmdao 框架,我们无法拥有可以进行约束处理、混合整数、并行优化的优化器。这里的并行意味着每次迭代都应该像在 GADriver 中一样并行化。考虑到 openmdao 未来可能的改进,我想向开发人员征求一些建议:
考虑为现有优化器编写包装器来处理上述请求是否是个好主意,或者应该选择完全退出 openmdao,因为 openmdao 可能不是这个特定领域中最强大的平台有问题吗?
如果编写包装器是个好主意,我认为应该在 openmdao 2.2.X github 中查找驱动程序例程。您对 python 内的优化器类型(付费或免费)有什么建议可以很容易地与 openmdao 兼容。
有一篇标题为 "Next generation aircraft design considering airline operations and economics" 的 AIAA 论文描述了当前 state-of-the-art 对混合整数规划问题的研究。这里的方法使用了一种混合方法,该方法利用 OpenMDAO 的高效基于梯度的功能来处理大量的连续设计变量。
一般来说,混合整数规划是没有限制的。你只需要自己编写 driver 来处理它。这些算法很复杂,但 SimpleGADriver 是开始了解如何并行 运行 模型的好地方。
我最近被分配到一个项目,该项目将在 python 开发优化工具。
各种在线搜索指出有多个 libraries/platforms 有利有弊。据我了解现有的 openmdao 框架,我们无法拥有可以进行约束处理、混合整数、并行优化的优化器。这里的并行意味着每次迭代都应该像在 GADriver 中一样并行化。考虑到 openmdao 未来可能的改进,我想向开发人员征求一些建议:
考虑为现有优化器编写包装器来处理上述请求是否是个好主意,或者应该选择完全退出 openmdao,因为 openmdao 可能不是这个特定领域中最强大的平台有问题吗?
如果编写包装器是个好主意,我认为应该在 openmdao 2.2.X github 中查找驱动程序例程。您对 python 内的优化器类型(付费或免费)有什么建议可以很容易地与 openmdao 兼容。
有一篇标题为 "Next generation aircraft design considering airline operations and economics" 的 AIAA 论文描述了当前 state-of-the-art 对混合整数规划问题的研究。这里的方法使用了一种混合方法,该方法利用 OpenMDAO 的高效基于梯度的功能来处理大量的连续设计变量。
一般来说,混合整数规划是没有限制的。你只需要自己编写 driver 来处理它。这些算法很复杂,但 SimpleGADriver 是开始了解如何并行 运行 模型的好地方。