4

最近、研究で二次制約付き二次計画法 (QCQP) の問題に遭遇しました。MATLAB 最適化ツールボックスで便利なもの、つまり「fmincon」関数 (非線形制約を使用した一般的な非線形最適化) を見つけました。これは「内点アルゴリズム」を使用して問題を解決します。 . 'Hessian' および 'Gradient' の有無にかかわらず 'fmincon' は非常に優れたソリューションを提供します。メイン コードで何百万回も呼び出す必要があるため、満足できないのは効率だけです。QCQP により具体的なものを見つける必要があり、おそらく効率が向上する可能性があります。しかし、netlib や wiki から多くの情報を見つけましたが、どちらを使用すればよいか判断がつきません。物事を 1 つずつ試すのは面倒なので、いくつかの提案が必要です。ちなみに、私はこの問題のために主に MATLAB でプログラミングしていますが、適切な c/fortran も役立ちます。

-やん

4

1 に答える 1

4

別の方法として、ここから入手できるCVX を使用することもできます。これは、QCQP (他の多くの種類の問題の中でも) にうまく機能します。以下は、QCQP を解決するコード スニペットです。

close all; clear; clc
n = 10;
H = rand(n); H = H*H'; % make spsd
f = -rand(n,1);
Q = rand(n); Q = Q*Q'; % make spsd
g = -rand(n,1);
cvx_begin
    variable x(n)
    0.5*x'*Q*x+g'*x <=0
    x >= 0
    minimize(0.5*x'*H*x + f'*x)
cvx_end
于 2013-08-16T19:05:29.117 に答える