問題タブ [ipopt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - pyomo 等式は交換可能ですか?
関数によって定義された制約は次のとおりです。
等式の項の順序は問題にならないと思いましたが、それらを切り替えると、異なる結果が得られます。
これの底にたどり着く方法がわかりません。
生成された .nl ファイルはわずかに異なりますが、解釈方法がわからないため行き詰まっています。
.nl ファイルの調査
2 つの 3 行セットには符号の違いがあります。
ファイル 1:
ファイル 2:
両方のファイルを ipopt にフィードすると、ファイル 1 で「実行不可能」になり、ファイル 2 で解が得られます。ファイル 1 を編集して、最初または 2 番目の 3 行セットの符号を変更すると、同じ結果で収束します。ファイル 2 として。
したがって、式の等式の順序は重要ではありませんが、それを変更すると、.nl ファイルで重要な符号の違いが得られます。
用語の順序が .nl ファイルに与える影響を示す簡単な例
制約 c1 の項の順序によっては、同じ .nl ファイルが得られません。
具体的には、次の 2 行を除いて、両方のファイルは同一です。
解くと、同じ結果が得られます。おそらく、例がゴミだからです。
pyomo - colaboratory (colab.research.google.com) の pyomo ipopt
pyomo が既に colaboratory にプリインストールされていることを知り、うれしく思いました。残念ながら、必要なソルバーがインストールされていません。インストールしてみましたが、うまくいきました。(conda install ipopt_bin -c cachemeorg を使用)
colaboratory に ipop をインストールする方法はありますか?
ありがとう
optimization - Pyomo-IPOPT: ソルバーは極小値に陥ります。それを回避するには?
高次元 (10+) 単調関数 (すべての方向で単調のように) のグローバルな最大値を見つけることからなる最適化問題を解決しようとしています。制約は、検索空間を平面で切断するようなものです。
すべてをコーディングし、ソルバーpyomo
を使用しています。ipopt
ほとんどの場合、大域的最適にうまく収束すると確信しています。しかし、制約を少し試してみると、極小値に収束することがあることがわかります。
探索と搾取のトレードオフのように見えます。渡すことができるオプションを調べましたがipopt
、リストが非常に長いため、グローバル最小値への収束を支援するためにどのパラメーターを使用すればよいかわかりません。
編集:
解決策の 2 つのヒント:
私の変数は、非常に無限の境界で定義されていました。たとえば
bounds=(0,None)
、無限の半直線上を移動します。それらに 2 つの有限境界を適用しました。私は現在、複数の開始を使用しています:
/li>
これまでのところ、これは収束に満足しています。