问题标签 [cvxpy]

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

python - 如何在cvxpy中将变量堆叠在一起?

我想使用cvxpy. 假设我想使用log_sum_exp函数来构建这样的约束:

的语法cvxpy允许我创建一个x = [z,m]维度的向量变量2并应用矩阵乘法来创建一个表达式向量0, z+m

像这样编码时,我会丢失一些逻辑,因为我希望变量数组的不同部分有不同的名称。有没有办法log_sum_exp更明确地使用转换,比如

?

我在官方文档中找不到任何提示。谢谢!

0 投票
0 回答
393 浏览

python - 如何在 SCS for python 中实现二次约束

我有一个形式的二次优化问题

min wrt to x 1/2 x'x + q'x St Gx <= h

我有一个相当大的问题(几百万个点和约束),虽然 cvxopt 的默认求解器被证明是有效的,但我很好奇在 SCS 中实现它应该更快(并且不使用 CVXPY 接口)。

经过文献检索(主要是 Boyd's Convex Analysis),对 SOCP 形式的重新表述应该产生

min wrt to z of c'z 服从 Az + s = b, s in K

其中 c = (1 q)' 和 z = (tx)' 其中 t 是标量,K 是与我的原始约束 (Gx \leq h) 相关的线性锥体和二次锥体 Q = { (t,x) | t >= ||x||}

但是,我应该如何实际定义 A 和 b ?

我想象了类似于 A = [[0 G],[2, 1, .., 1]] 和 b = (h 0) 的东西。但是,在 python scs.solve 锥字典参数中将 'q' 选项设置为 [1] 时,我无法让它工作?A 的最后一行的预期语法是什么?(也就是说,假设我的数学重新表述是正确的......)

谢谢您的帮助 !

0 投票
0 回答
344 浏览

python-2.7 - 如何清除cvxpy中定义的变量?

当您反复调用cvxpy.Variables()

然后打印内部表示

当重复几次时,指数增加

如何释放生成变量占用的内存?

0 投票
2 回答
2061 浏览

optimization - 投资组合优化中的基数约束

我正在使用 cvxpy 来解决一些简单的投资组合优化问题。我无法理解的唯一约束是非零投资组合持有数量的基数约束。我尝试了两种方法,一种 MIP 方法和一种传统的凸方法。

这是一个有效的传统示例的一些虚拟代码。

我有想法使用 sum_smallest 和 sum_largest ( cvxpy manual ) 我的想法是将最小的 nk 个条目限制为 0 并让我的目标范围 k 总和为 1,我知道我不能按顺序改变不等式的方向保持凸面,但也许任何人都知道一种在保持简单的同时约束问题的聪明方法。

我的第二个想法是把它变成一个混合整数问题,s.th沿着线

查看我的二进制向量,它似乎在做正确的事情,但 sum_entries 约束不起作用,查看二进制向量值我注意到 0 不是 0 它非常小,例如 xxe^-20 我认为这会搞砸向上。如果这是正确的方法,任何人都可以给我任何指导吗?如果有帮助,我可以使用标准求解器以及 Mosek。我更喜欢非 MIP 实现,因为我知道这是一个组合问题,对于更大的问题会变得非常慢。最终,我想限制目标持股的确切数量或范围,例如 20-30。

cvxpy 中围绕 MIP 的文档也很短。谢谢

0 投票
0 回答
776 浏览

python - python最小二乘回归修正目标函数

最小二乘回归定义为残差平方和的最小化,例如

但是,我想提出一个轻微的修改,以便我们仍然尽量减少以下内容

基本上我只想在预测的符号不等于实际的符号时惩罚y。有没有关于这个或实现的文献?我正在尝试在 cvxpy 中实现,但不知道该怎么做

0 投票
1 回答
3622 浏览

python - 如何在`cvxpy`中对向量的一部分求和?

cvxpy用来解决凸优化问题,这是我的约束:

在此处输入图像描述

那么我该如何表达这个约束cvxpy呢?中的sum_entries函数cvxpy只能对整个矩阵/向量求和,但不能对向量的一部分求和。

0 投票
0 回答
1023 浏览

python - 在 CVXPY 中用矩阵求解线性程序

我在 Python 3 中使用 CVXPY 尝试在X(N x T 矩阵)中对以下线性程序进行建模。让

  • R是一个 N × 1 矩阵,其中每一行是 中的整行值的总和X
  • P是一个 1 × N 矩阵,定义XP_t = 1/(G-d-x_t).

我想解决一个理想的问题:

最小化 (X x P)

受制于:

X 中到达行 i 的总和必须至少为 R_i 中的值

X 中的每个值必须至少为 0

有什么想法吗?我有以下代码,但没有得到任何运气:

0 投票
0 回答
810 浏览

python - 求解 CVXPY 矩阵优化线性规划

我正在尝试在以下线性程序设置中求解理想矩阵 X:

X = N by T 矩阵,这是我们的变量。为简单起见,我们将 N 设置为 4,将 T 设置为 3。

X_column_sum = 1 by T 矩阵,其中每列值是 X 中对应列的所有值的总和

R = N x 1 矩阵,具有随机确定的值

G = 常数(为简单起见,我们设置为 100)

d = 1 × T 矩阵,其值在 [0, G-1] 范围内

P = 1 × T 矩阵等于 X_column_sum + d

C = X 点缀着 P

我想最小化 C 的条目总和,同时保留以下约束:

  • X 中的所有值都必须 >= 0
  • X 的每个对应行中所有值的总和必须至少等于 R 中的对应值

我在 python 中使用 cvxpy 尝试了以下代码,但无济于事:

0 投票
0 回答
363 浏览

mathematical-optimization - CVXPY 的最小加加速度轨迹

我正在尝试使用 cvxpy(版本 0.4.9)以数值方式解决生成 1D 最小加加速度轨迹的问题。这是问题的基本陈述,

在此处输入图像描述

“x”是作为时间函数的位置向量。“D”是计算加加速度的矩阵,“A”和“b”指定位置、速度和加速度的约束。x[0] = 0,x[N] = 1。速度和加速度从 0 开始和结束。

我尝试使用以下代码使用 CVXPY 解决此问题。

正如预期的那样,当N = 100时,我得到以下输出。

在此处输入图像描述

但是,当我更改N = 1000时,我得到了一些奇怪的东西(问题状态仍然是最佳的)。

在此处输入图像描述

为什么我会看到这样的差异?我做错了什么,我应该怎么做才能解决这个问题?

当我将 D 缩放 1000 倍时,我的结果是不同的。

0 投票
1 回答
581 浏览

python - 如何通过在 python 中使用 cvxpy 来最小化这个方程?

我是新手,CVXPY想做一些优化,

这是我的代码:

在哪里

我有A(n乘m)和a(n乘n):

但我收到以下错误:

看来我没有解决凸问题,所以CVXPY不起作用我该如何处理?

我是新手,CVXPY所以请具体说明!谢谢!