2016-07-27 13 views
0

設計変数の値が範囲外であることが何度も起こりました(たとえば、下限0.0、設計変数値が-0.004に設定されました。オプティマイザ)、制約は無視されているように見えました(たとえば、出力変数の最小1.0制約が満たされていないなど)。境界から外れた設計変数の値が無視されているように見える

私はopenMDAOバージョン1.6.4、ScipyOptimizer、SLSQP、force_fd、step_size 1.0e-4を使用しています。

なぜこれらのことが起こったかについてのアイデアはありますか?設定を間違っていますか?バグはありますか?そうでない場合、回避する方法は?

フィードバックは高く評価されます。

+0

質問を編集して設定方法を示すためのコードを追加していただければ、より効果的に役立つかもしれません。ありがとう! – kmarsteller

答えて

0

コードを見ずに、わかりにくいです。しかし、SLSQPは、特に設計変数のスケーリングが不十分な場合に、変数の境界に違反することが知られています。設計変数が0と1の間で変化するようにスケーリングを試してください。それがより効果的に働くはずです。

+0

お返事ありがとう、ジャスティン、それはたくさん説明します。 私は設計変数を[0,1]にスケーリングしませんでした。スケーリングされた変数でコードを再実行します。 (すべて正常に動作する場合、それ以上のフォローアップは提供されません) よろしく、 Henry –

0

スケーリングされた変数でコードを再実行するにはかなりの時間がかかりました。

私は収束した結果を得て、すべての設計変数の値がその範囲内にありますが、まだ1つの制約は満たされていません。パラメータの制約を[0,1.5]に設定しましたが、最終的な結果は1.73です。

私はより厳密な収束基準を適用し、制約を満たすかどうかを確認するためにコードを再実行することを考えています。

小さなコンバージェンス基準がすべての制約を満たすのに役立つと思いますか?あなたのアドバイスは高く評価されます。

関連する問題