0

何かが失敗した場合に終了フラグを指定する機能が必要です。pyoptsparse_driver のOpenMDAOドキュメントには、終了フラグのオプションがあります。ただし、オプションとして終了フラグを指定して実行すると、Option 'exit_flag' has not been added. また、何かが失敗したかどうかを実際に指定する方法もわかりません。solve_nonlinear() で失敗したコンポーネントからフラグを渡し、それを使用して pyoptsparse_driver にオプションを設定する必要がありますか? このようなことをしたいのですが、構文がよくわからず、例が見つかりません。

def solve_nonlinear(self, params, unknowns, resids):
    unknowns['y'], exit_flag = function(params['x'])
    self.exit_flag = exit_flag
4

1 に答える 1

1

ここにはいくつかの問題があります。

1)「コンポーネントからオプテ​​ィマイザまで障害情報を伝播するにはどうすればよいですか?」現在、これを処理する方法がありません。ただし、近い将来に取り組む予定です

2)コンポーネントに障害が発生した場合、適切な対応は何ですか? 何をしているかによります。DOE の場合は、おそらく失敗したケースをログに記録して続行する必要があります。勾配のない方法では、おそらくある種の客観的なペナルティが保証されます。勾配ベースのアルゴリズムの場合、ライン検索でバックトラックする必要がある可能性があります (または、他の同様の種類のウォーク バック メカニズムを使用します)。

3)すべてが失敗した場合、ドライバーは全体的な終了ステータスを報告できますか。繰り返しますが、これはまだ一般的な方法で実装されていません。pyopt_sparse ドライバーで見つけたオプションは、doc-string の誤りです。ただし、内部の pyopt 状態に基づいて設定される exit_flag 属性があります。

于 2016-03-01T00:49:11.293 に答える