我正在创建这个新的主题,因为我使用的是OpenMDAO平台,更具体地说,它的实验选项的设计。我想知道是否有适当的方式来中断和停止计算,如果在我的程序中满足条件。
我已经使用OpenMDAO优化器来研究和解决一些问题,并停止用于引发异常以停止程序的计算。这种策略似乎适用于优化器,但在我使用LatinHypercubeGenerator驱动程序时却不起作用:就好像OpenMDAO程序仍然在试图计算这些点,即使在OpenMDAO显式组件函数“计算”中出现异常或RuntimeError。
在这方面,我想知道是否有办法在计算期间杀死OpenMDAO。我试着检查OpenMDAO内置属性或方法是否可以完成这项工作,但我没有找到任何东西。
有人知道如何停止OpenMDAO的DOE计算吗?事先非常感谢您的任何建议/帮助
发布于 2022-06-16 10:27:46
从OpenMDAO V3.18开始,就没有办法在DOE驱动程序中添加某种停止条件。您提到使用AnalysisError为其他优化器实现这一目标。这在一般情况下也不起作用,因为一些驱动程序会故意捕捉这些错误,作出反应,并试图继续运行优化。
您可以看到驱动程序的运行代码,其中创建了一个for循环,并使用一些尝试/捕捉块记录特定情况的成功/失败。
我的建议是将驱动程序代码复制到您的模型目录中,并创建您自己的自定义驱动程序。您可以根据单个案例的结果或当前运行案例的一些统计分析来添加任何类型的终止条件。
如果您想出了一种简洁的方法,那么始终可以提交一个诗和/或拉请求,以建议将新功能添加到OpenMDAO的主线中。
https://stackoverflow.com/questions/72639388
复制相似问题