2

我想解决以下优化问题:

非乳胶:给定 x 和 mu,找到

argmin_p ||xp||_2 st ||p||_2 < 亩。

乳胶:

给定$\mathbf{x}$and $\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 个变量,这需要不到一秒钟的时间。

于 2012-06-25T06:00:52.443 回答