1

私は原則的にsolve.QP(quadprog)で解決できるはずの非常に単純な二次問題を持っています:

max x^2+3*y^2 subject to x>=0, y>=0, x+y <=1

問題は、最大化を必要な最小化に変えると、行列が (明らかに) 負定値になることです。小さな固有値や丸めに関する問題ではありません。

solve.QP は一般的なソルバーだと思っていましたが、オンライン資料を読んで努力したにもかかわらず、solve.QP を使用してコンパクトな領域 (線形制約によって定義された) で正定値二次形式を最大化できないようです。

本当?

私はこれと同様の問題を他の関数で解決できることを知っていますが(正常constrOptimに動作します)、ラグランジュ乗数をマキシマイザーに接続したいと思っていました。

(非常に効率的な)solve.QPを使用して上記の問題を解決し、正の定義性に関連する非対称の制限を克服する方法を提案できますか?

4

1 に答える 1

1

凸領域上の凸関数の最大値を見つけたいとします。凸関数は定義域の内部点に最大値を持つことができないため、ラグランジュ乗数を使用する方法をその問題に適用することはできません。

あなたの場合、ドメインはコンパクトなポリゴンであるため、頂点の1つで最大値が想定されます。ここは簡単なチェックです。

于 2012-10-29T16:52:34.880 に答える