2

次の最適化問題を解きたい:

非 Latex: x と mu が与えられた場合、見つける

argmin_p ||xp||_2 st ||p||_2 < mu.

ラテックス:

与えられ$\mathbf{x}$$\mu$、見つけます

$\mathrm{argmin}_p \|\mathbf{x}-\mathbf{p}\|_2 \;\; \mathrm{s.t.}\;\;\|\mathbf{p}\|_2 \leq \mu$,

これは凸集合上の凸関数です。私はMatlabを使用していますfminconが、遅すぎます。これまでのところ、検索エンジンの結果は、私が探しているものよりもはるかに理論的な資料を提供してくれました。この問題を解決したいと思ったのは私が初めてではなく、既存の効率的な Matlab 実装を見つけたいと思っていました。

4

1 に答える 1

4

cvxはこの問題を非常に簡単に処理できます。慣れていなくても、構文は非常に直感的です。

% test data
n = 1e4;
x = randn(n,1);
mu = 1;

cvx_begin
variable p(n)
minimize norm(x-p)
subject to
norm(p) <= mu
cvx_end

私のシステムでは、10^4 変数の場合、これに 1 秒もかかりません。

于 2012-06-25T06:00:52.443 に答える