1

我目前正在使用 Openmdao 1.7.1。我正在尝试在预期改进的最佳点上使用克里金法训练自己的 MetaModel。目的是使用类似 EGO 的方法在紧凑的设计空间上找到全局最优值。

但是,我面临以下难题:

为了找到最佳点,我看到的唯一方法是在嵌套问题中使用梯度基优化器对预期改进函数运行优化,外部问题运行 FixedPointIterator,检查预期改进值的值.

我的问题如下:

  • 还有另一种更有效的方法吗?我在 Openmdao 1.x 中找不到任何关于 EGO 的信息,如果有,我应该去哪里看?
  • 如果这是唯一的方法:
    • 这会在我的设计空间中找到全局最优值吗?

预先感谢您的回复。

4

1 回答 1

1

我认为您可以将 EGO 开发为独立的驱动程序。驱动程序将负责运行底层模型、收集案例、构建代理并进行自己的子优化。

为此,您可以使用 OpenMDAO 中内置的代理模型。您只是不会使用元模型组件。您将只使用代理模型本身。有关如何执行此操作的示例,请查看这个自行运行克里金法的测试。

因此,90% 的 EGO 过程将被封装到驱动程序中。这避免了对子问题的需要,我认为大大简化了代码。EGO 算法相当简单,并且不难编码到驱动程序中。通过使用嵌套问题来实现它,您不会获得太多收益。但是通过将其作为驱动程序,您仍然可以构建一个由 EGO 运行的更复杂的模型。

于 2016-07-30T15:15:05.890 回答