2017-02-21 17 views
0

これは自動アーキテクチャコードです(ソース:http://openmdao.org/releases/0.13.0/docs/tutorials/mdao/optproblem.html) 目的関数の最小値を出力するコードは何であるか疑いがあります。 それは非常に自明かもしれませんが、私はそれを取得していません。私はeval_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" 

答えて

0

このコードでは、オプティマイザが終了し、モデルが最も低い目標を示したポイントに座っていることを前提としています。すべてのグラディエントベースのオプティマイザでは、これは合理的な前提です。 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'])) 
+0

をその最適値を印刷してください。それを印刷するにはいくつかのコマンドが必要です。 –

関連する問題