gpt4 book ai didi

r - R 中的 CVX 式凸优化?

转载 作者:行者123 更新时间:2023-12-03 02:19:38 26 4
gpt4 key购买 nike

我需要解决(很多时候,对于大量数据,以及一堆其他事情)我认为可以归结为 second order cone program 。可以简洁地表达为 CVX像这样的东西:

cvx_begin
variable X(2000);
expression MX(2000);
MX = M * X;
minimize( norm(A * X - b) + gamma * norm(MX, 1) )
subject to
X >= 0
MX((1:500) * 4 - 3) == MX((1:500) * 4 - 2)
MX((1:500) * 4 - 1) == MX((1:500) * 4)
cvx_end

显示的数据长度和等式约束模式只是一些测试数据中的任意值,但一般形式将大致相同,有两个客观术语 - 一个最小化错误,另一个鼓励稀疏性 - 以及大量对优化变量的转换版本的元素的等式约束(本身约束为非负)。

这似乎工作得很好,比我以前的方法要好得多,我以前的方法捏造了一些腐烂的约束。问题是,与此相关的其他所有事情都发生在 R 中,并且必须将其移植到 Matlab 中会非常麻烦。那么在 R 中这样做是否可行,如果可行的话如何实现?

这实际上可以归结为两个不同的问题:

1) 有这方面的好的 R 资源吗?据我所知,从 CRAN task page ,SOCP 封装选项为 CLSCOPDWD ,其中包括一个 SOCP 求解器作为其分类器的附件。两者都有相似但相当不透明的界面,并且文档和示例都有点薄弱,这让我们得出:

2) 在这些包使用的约束 block 格式中表示上述问题的最佳方式是什么?上面的 CVX 语法隐藏了很多关于额外变量等的繁琐的处理,我可以看到自己花了几周试图把它弄好,所以任何提示或指示都可以插入我朝正确的方向发展非常欢迎...

最佳答案

您可能会找到 R 包 CVXfromR有用。这使您可以将优化问题从 R 传递到 CVX 并将解决方案返回到 R。

关于r - R 中的 CVX 式凸优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com