eval_objective 自动架构命令

eval_objective command for automatic architectures

这是一个自动架构代码(来源:http://openmdao.org/releases/0.13.0/docs/tutorials/mdao/optproblem.html) 我怀疑打印 objective 函数的最小值的代码是什么。 这可能非常微不足道,但我不明白。我尝试使用 eval_objective 但它不起作用。现有代码要添加什么代码?

def display_results():
    print "Minimum found at (%f, %f, %f)" % (problem.dis1.z1,
                                    problem.dis1.z2,
                                    problem.dis1.x1)
    print "Couping vars: %f, %f" % (problem.dis1.y1, problem.dis2.y2)
    print "Function calls dis1: %d, dis2: %d"%(problem.dis1.exec_count,problem.dis2.exec_count)
    print "\n"

该代码假定优化器已完成并将模型留在给出最低 objective 的点。对于所有基于梯度的优化器,这是一个合理的假设。

要在 openmdao > 1.7.x 中做同样的事情,请参阅以下教程: http://openmdao.readthedocs.io/en/1.7.3/usr-guide/tutorials/paraboloid-tutorial.html#optimization-of-the-paraboloid-with-a-constraint

print('Minimum of %f found at (%f, %f)' % (top['p.f_xy'], top['p.x'], top['p.y']))