我通过OpenMDAO使用SLSQP来解决优化问题。优化工作正常;最后的SLSQP输出显示:
Optimization terminated successfully. (Exit mode 0)
Current function value: [-0.07475851]
Iterations: 44
Function evaluations: 87
Gradient evaluations: 44
Optimization Complete
我现在正在尝试对结果进行后处理,并在整个迭代过程中检查优化的收敛性。当我通过sqlite字典通过
访问迭代时db = sqlitedict.SqliteDict('opt_record.sqlite','iterations')
db.keys()
然后我看到87条记录。所以"迭代"这里真的是指功能评估。显然,这也可以给出收敛的想法,但有没有办法真正访问迭代信息,通过一些输出机制或反向计算哪些函数评估指的是迭代的结束?
答案 0 :(得分:1)
Major iterations
这两件事都由案例记录器记录下来,OpenMDAO没有办法区分它们。你可以过滤它们,因为主要的迭代总是在衍生计算之前。所以没有任何衍生物的案例最有可能来自线下搜索者。