问题标签 [cvxr]

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 回答
91 浏览

cvx - CVXR:处理变量矩阵的非对角元素

假设在CVXR我有一个定义A <- Variable(3,3) 并且想要最大化函数“非对角元素的平方根之和”。但是,如果我写类似的东西 sum(sqrt(A))-sum(sqrt(diag(A))),第一个函数是凹的,但第二个也是,这不符合,DCP Ruleset因此被CVX引擎拒绝。然而,很明显这个函数是凹的——我们只是简单地删除了总和中的一些元素,没有办法说“请考虑非对角元素”。可以做什么?

0 投票
1 回答
212 浏览

r - 使用 CVXR 创建 MOSEK 可行性报告的参数

我正在使用 CVXR 使用 MOSEK 求解器解决 R 中的优化问题。CVXR 通过 ANACONDA 找到了 MOSEK SOLVER 并且工作正常。但是,当模型不可行时,我无法生成 MOSEK 可行性报告。这通常通过 MSK_IPAR_INFEAS_REPORT_AUTO = "ON" 开启(至少在 GAMS 中,我之前使用过 MOSEK)并且对于识别模型设计、数据等方面的问题非常有用。标准命令给了我一个错误。然后我尝试了 Python 接口,它告诉我使用:task.putintparam(iparam.infeas_report_auto, onoffkey.on)。这似乎被我的解决命令接受但仍然没有吐出可行性报告。下面是一个可重现的例子。我究竟做错了什么?

仅给出标准输出:

问题名称:
客观意义:min
类型:LO(线性优化问题) 约束:2 个
锥体:0
标量变量:1
矩阵变量:0
整数变量:0

优化器启动。预求解开始。消除器启动。消除器中释放的约束:0 消除器终止。消除器启动。消除器中释放的约束:0 消除器终止。消除器 - 尝试:2 次:0.00
林。部 - 尝试:0 次:0.00
林。部 - number : 0
Presolve 终止。时间:0.00
优化器终止。时间:0.01

内点解决方案摘要 问题状态:DUAL_INFEASIBLE 解决方案状态:DUAL_INFEASIBLE_CER 原始。obj:-1.0000000000e+00 nrm:1e+00 Viol。缺点:0e+00 变量:0e+00

基本解决方案摘要 问题状态:DUAL_INFEASIBLE 解决方案状态:DUAL_INFEASIBLE_CER 原始。obj:-1.0000000000e+00 nrm:1e+00 Viol。缺点:0e+00 变量:0e+00

0 投票
0 回答
84 浏览

r - 是否可以使用 CVXR 包优化适用于数据帧的功能?

我有以下问题。
第一步假设我有一个包含 3 个事实(a、b、c)的数据框。

然后,我对列 b 和 c 进行一些转换(例如它是滚动求和,但在这里我想做更复杂的事情),并计算目标列 (y)。

现在的目标是在 b 列和 c 列之间重新定位数字:

  • 像开头一样保持 b 和 c 的分布(如果给定 kolumn 的总和大于 0)
  • 保持 b 和 c 列的总和不变 (7844)
  • b 和 c 都应该 >= 0

使y 最大化

我尝试使用 CVXR 包,我将目标定义为数据框和对象变量()的自定义函数。代码似乎可以运行,但结果是错误的,因为解决方案应该是“将所有内容重新定位”到 c 列。然而,输出是相反的。

0 投票
1 回答
183 浏览

r - CVXR 矩阵与向量的元素乘法

我想使用 CVXR 来找到向量的最佳值。在目标函数中,我需要以元素方式将矩阵与向量相乘:

b:Nx1 向量 X:Nxp 矩阵 结果:Nxp 矩阵

例子:

b 是要优化的系数向量。

使用 CVXR 必须声明

as 变量对象 with 使用矩阵形式,因此稍后我们不能像前一种情况那样真正乘法。

此外,我们不想创建 b: Nxp 的矩阵,因为我们需要为第 i 列的所有 N 个观测值设置一个最优值(因此 mul_elemwise(X, X*b) 选项不能作为它会为 N 的不同观察提供不同的最佳值 - 如果我没记错的话)。

谢谢,

0 投票
1 回答
40 浏览

cvxr - 在 CVXR 中编写目标函数

我正在尝试解决 CVXR 中的以下问题。这里 y 是一个 n × m 矩阵,x 是 n × G × m,b 是 m × G。

我收到以下错误:y - expr 中的错误:二进制运算符的非数字参数。

我相信我没有以exprCVXR 期望的方式传递 n x m 矩阵。任何帮助将不胜感激。谢谢!

0 投票
1 回答
341 浏览

r - R CVXR 矩阵乘法 %*% mul_dims_promote(lh_dim, rh_dim) 中的错误:尺寸不兼容

您好,我正在尝试从这里运行示例:http ://rtutorial.altervista.org/lp_solvers.html

一个片段并测试它出错的地方:

错误:mul_dims_promote(lh_dim, rh_dim) 中的错误:尺寸不兼容

问题可能出在

它在三个不同的包中定义:在以下包中找到关于主题“%*%”的帮助:

矩阵乘法(在库 /usr/lib/R/library 的包库中) 使用 gmp 进行矩阵操作(在库 /home/gnowak/R/x86_64-pc-linux-gnu-library/3.6 的包 gmp 中)矩阵(交叉)产品(转置)(在库 /home/gnowak/R/x86_64-pc-linux-gnu-library/3.6 中的包 Matrix 中)

任何提示或提示?谢谢你。

0 投票
1 回答
100 浏览

cvx - Base Apply 和 Elementwise 函数 CVXR

有没有办法使用 base::apply 和 CVXR 元素函数将元素函数应用于矩阵的每一列?假设向量的长度与矩阵的行数匹配,我希望能够使我的目标函数如下:

解决问题时出现以下错误: min(constant) 中的错误 : invalid 'type' (list) of argument

(如果我的代码不清楚,我的目标是将变量向量乘以常数矩阵的每一列,然后得到每个缩放列的最大值,然后对所有这些最大值求和。)

谢谢!

0 投票
1 回答
225 浏览

cvxpy - CVXR 迭代限制

使用 R,我正在运行混合整数优化,它在使用 CVXR 的标准求解或 psolve 函数时使用 ECOS_BB 求解器选项。

如何设置最大迭代次数?我到处都看过。当我将 ECOS_BB 本机选项添加到函数调用时,它们都没有做任何事情。

我使用的是 0.99-3 版本。

0 投票
1 回答
68 浏览

r - CVX 的 DCP for R 遇到问题

我面临以下挑战,我似乎没有找到解决方案:

基本上,我想为 StoNED 编写一些代码 - 随机非平滑数据包络。

我从这个开始:

由于这不起作用,我尝试将问题转换为:

通过这个,我将 DCP 错误从问题表达式转移到了约束表达式。我真的不知道如何解决这个问题。有没有人有合适的解决方案?提前致谢!

0 投票
2 回答
443 浏览

linear-programming - 在线性规划中使用索引进行优化

我遇到了几个优化问题,涉及识别向量中的一个或多个索引以最大化或最小化成本。有没有办法在线性规划中识别这些索引?我对 、 、 或任何其他 API 中的解决方案持mathprog开放CVXR态度CVXPY

例如,对于变化点问题(找到函数发生变化的索引)需要确定一个索引,对旅行商问题(在累积距离 Y 之前访问城市 X)施加距离约束。

举个简单的例子,假设我们想要识别向量中任一侧的和最相等(它们的差最小)的位置。在此示例中,解决方案是索引 5:

尝试 1

使用CVXR,我尝试声明split_index并将其用作索引(例如,x[1:split]):

1:split_indexNA/NaN argument.

尝试 2

声明一个显式索引向量 ( indices) 并进行元素逻辑测试是否split_index <= indices. 然后将该二进制向量逐元素乘以x选择分割的一侧或另一侧:

x * is_firstnon-numeric argument to binary operator. 我怀疑这个错误的出现是因为is_first现在是一个IneqConstraint对象。