问题标签 [cvx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
657 浏览

r - CVXR 包:as.vector(data) 中的错误:没有将这个 S4 类强制为向量的方法

我正在尝试使用包 CVXR 进行优化。我正在遵循此页面的说明:https ://rviews.rstudio.com/2017/11/27/introduction-to-cvxr/

我的问题有点复杂,我想将系数变量(我要优化的变量)放入矩阵中以帮助编码。但是,我不能在 R 中做到这一点

非常感谢任何帮助。

0 投票
1 回答
757 浏览

r - 在 CVXR 中指定求解器

我是 CVXR 包的新手。我正在使用它在 EM 算法的每次迭代中进行凸优化。一开始一切都很好,但经过 38 次迭代后,我有一个错误:

我不确定为什么求解器一开始可以正常工作,但后来无法正常工作。我查阅了有关如何更改求解器的手册,但找不到答案。我也很好奇我们是否可以在 CVXR 中指定学习步长。非常感谢任何帮助

0 投票
0 回答
336 浏览

python - matlab CVX问题到python cvxpy

这是我的 Matlab CVX

我在 Python 环境中的 cvxpy 中尝试了这个:

但是约束变量有问题。也许 numpy 函数不起作用。似乎只有 cvxpy 语法有效。但是,我在 cvxpy 语法中找不到矩阵乘法。我怎样才能做到这一点?

0 投票
1 回答
480 浏览

r - R中的快速非负分位数和Huber回归

我正在寻找一种在 R 中进行非负分位数和 Huber 回归的快速方法(即所有系数均 > 0 的约束)。我尝试使用CVXR用于分位数和 Huber 回归的quantreg包以及用于分位数回归的包,但是当我使用非负约束时,CVXR它非常慢并且quantreg看起来有问题。有人知道 R 中有一个好的快速解决方案吗,例如使用Rcplex包或R gurobi API,从而使用更快的 CPLEX 或 gurobi 优化器?

请注意,我需要运行低于 80 000 次的问题大小,因此我只需要y在每次迭代中更新向量,但仍然使用相同的预测矩阵X。从这个意义上说,我觉得CVXR我现在必须obj <- sum(quant_loss(y - X %*% beta, tau=0.01)); prob <- Problem(Minimize(obj), constraints = list(beta >= 0))在每次迭代中做效率低下,而问题实际上保持不变,而我想要更新的只是y. 有什么想法可以更好/更快地完成这一切吗?

最小的例子:

使用 CVXR 的非负分位数回归:

非负 Huber 回归的语法相同,但会使用

quantreg使用包的非负分位数回归:

0 投票
1 回答
8687 浏览

cluster-computing - 如何使用 slurm 在特定节点上运行作业?

我最初的问题是如何在集群上运行 CVX 工具箱(具有学术许可)。我想不出一个直接的方法来做到这一点,我决定以不同的方式解决这个问题。

CVX 许可证依赖于硬件,每个学术许可证与 4 个硬件相关联。我想将其中一个节点(可能是两个)添加到许可证列表中。为此,我需要始终在相同的硬件或节点上运行 CVX(我知道这可能不是一种有效的方法)。有什么办法吗?

0 投票
0 回答
509 浏览

warnings - CVX 警告是什么意思?

当我运行以下 CVX 代码时,我收到一个我不理解的警告。我只有警告,然后代码返回解决方案。如果我重新运行代码,我就不再有警告了。

警告是

代码是

0 投票
1 回答
2557 浏览

python - Howto:CVXPY 矩阵不等式约束

我正在尝试通过以下方式制定优化问题:

  1. 我的优化变量 x 是一个 *n 矩阵。
  2. x 应该是 PSD。
  3. 它应该在0 <=x<= I范围内。意思是,它将在从全零方阵到 n 维单位矩阵的范围内。

到目前为止,这是我想出的:

这给了我[[1, 0], [0, 0]]作为最优 x 的结果,最大迹线为.5. 但事实并非如此。因为我已经在 matlab 的 CVX 中完成了同样的程序,所以我得到了答案矩阵[[.85, -.35], [-.35, .14]],其最优值为.707. 哪个是对的。

我认为我的约束公式不正确或不遵循 cvxpy 标准。如何正确执行程序中的约束?

(这是我的matlab版本的代码:)

TIA

0 投票
1 回答
387 浏览

r - 用于 CVXR 的 Usign Mosek

我已经安装了 3 次 Mosek。它在 python 中工作,但 CVXR(r 包)函数 installed_solvers() 无法找到 MOSEK。 在此处输入图像描述

我正在研究 MACos Mojave。我通过 conda 命令安装了 Mosek,获得了学术许可证,在主目录中创建了一个名为 mosek 的文件夹并将许可证文件放入其中。然后我在 jupyter 实验室测试了以下脚本https://docs.mosek.com/8.1/pythonapi/design.html#hello-world-in-mosek并得到结果 Solution x = 2.0 ,所以 Mosek 正在工作。然后我安装了reticulate,使用默认目录,将其替换为use_python("/Users/apple/anaconda3") 和use_python("/Users/apple/anaconda3/lib/python3.6") 在其中任何一个中,函数installed_solvers () 找到了 mosek。我的会话信息如下 在此处输入图像描述

https://cvxr.rbind.io/cvxr_examples/cvxr_using-other-solvers/中的文档并没有真正说明如何解决问题。有人找到解决方案了吗?谢谢

0 投票
2 回答
385 浏览

r - CVXR 使用 Mosek 解决二次最小化问题

我正在尝试使用 R 包 CVXR 解决具有线性约束的二次优化问题。尽管默认求解器能够解决优化问题,但 Mosek 求解器却不能。我希望使用 Mosek 的原因是因为我需要解决超过 250 个约束的更大问题,而默认求解器给出的解决方案不准确,所以我希望使用 Mosek 解决更大的问题。这是 Mosek 不工作的一个简单示例:

问题数据

表格问题

风险规避参数

它给出了以下错误。

有人知道如何解决它,可能是重新表达问题?

我的会话信息如下:

谢谢

0 投票
0 回答
238 浏览

cvxpy - 将优化问题从 CVX 转换为 CVXPY?

我正在尝试将半定编程问题从 CVX 转换为 CVXPY,如此处所述。我的尝试如下:

这里的问题是,当我获取傅里叶级数的系数并将它们转换为数组c时,它在复数值上失败了。我认为这是由于maximizeCVX 和 CVXPY 的功能之间存在差异。我不确定 CVX 最大化了什么,因为矩阵的轨迹是一个复数值。正如下面所指出的,由于矩阵是 Hermitian,所以迹线是真实的,但代码仍然失败。有 CVXPY 知识的人可以解决这个问题吗?