http://cran.r-project.org/web/packages/quadprog/quadprog.pdf
Rパッケージquadprog
は、行列が正定の場合にのみ、2次計画問題を解くことができるようです。
ただし、行列が正定でない場合があります。といった
この種の問題を解決するにはどうすればよいですか?
http://cran.r-project.org/web/packages/quadprog/quadprog.pdf
Rパッケージquadprog
は、行列が正定の場合にのみ、2次計画問題を解くことができるようです。
ただし、行列が正定でない場合があります。といった
この種の問題を解決するにはどうすればよいですか?
回答:
目的関数が凸であるかどうかにかかわらず、2次計画問題のローカルまたはグローバル最適化専用の最適化ルーチンがあります。
BARONは、コンベックスであろうとなかろうと、二次計画問題を処理し、利用することができる汎用のグローバルオプティマイザーです。
CPLEXには二次計画法ソルバーがあり、solutiontarget = 2で呼び出して局所最適を見つけるか、= 3で呼び出して大域最適を見つけることができます。MATLABでは、cplexqpで呼び出すことができます。
線形制約を処理できる汎用ローカルオプティマイザを使用して、ローカル最適値を見つけることもできます。Rの例はhttps://cran.r-project.org/web/packages/trust/trust.pdfです。Rのオプティマイザーはhttps://cran.r-project.org/web/views/Optimization.htmlにリストされています。
MATLABでは、Optimization Toolboxの関数quadprogを使用して、局所最適を見つけることができます。
ジュリアでは、さまざまなオプティマイザを利用できます。
「すべての」勾配降下アルゴリズムは、制約に対処することはもちろん、何にも着陸しない可能性があります。彼らが何をしているかを知っている誰かが開発したパッケージを使用してください。
提供されているサンプル問題は、証明可能なグローバル最適性に簡単に解決されます。おそらく2年以上経過すると、それはもはや必要ではないか、多分それがかつてなかった例であるかもしれませんが、いずれにしても、グローバル最適はx = 0.321429、y = 0.535714です。