问题标签 [cvxopt]

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

python - cvxopt 不能解决简单的线性优化

我有这个模型

其中c是 16x1 numpy 系数数组,G12 x 16表示模型约束的矩阵,h是 12x1 数组。

从 cvxopt 文档中,我认为该模型应该实现为线性程序并使用 lp 求解器求解

但我收到此错误:

虽然使用 cvxopt 的 glpk 接口实际上工作顺利,它给了我很好的解决方案:

我怎样才能让 lp 求解器在 cvxopt 中解决这个问题?

0 投票
1 回答
4572 浏览

python - Python中的随机优化

我正在尝试结合cvxopt(优化求解器)和PyMC(采样器)来解决凸随机优化问题

作为参考,安装这两个软件包pip很简单:

两个包都可以很好地独立工作。以下是如何解决 LP 问题的示例cvxopt

但是,当我尝试将它与 PyMC 一起使用时(例如,通过对其中一个系数进行分布),PyMC 会出现错误:

我收到以下 PyMC 错误:

为什么?有什么办法可以很cvxopt好玩PyMC吗?

背景:

万一有人想知道,PyMC 允许您从您选择的任何函数中进行采样。在这种特殊情况下,我们从中采样的函数是将 LP 问题映射到解决方案的函数。我们从这个函数中采样是因为我们的 LP 问题包含随机系数,所以不能只应用现成的 LP 求解器。

更具体地说,在这种情况下,单个 PyMC 输出样本只是 LP 问题的解决方案。由于 LP 问题的参数不同(根据您选择的分布),PyMC 的输出样本会有所不同,希望得到后验分布。

上面的解决方案受到这个答案的启发,唯一的区别是我希望使用真正的通用求解器(在这种情况下cvxopt

0 投票
3 回答
1696 浏览

scipy - scipy稀疏矩阵到cvxopt spmatrix?

我需要将一个 scipy 稀疏矩阵转换为 cvxopt 的稀疏矩阵格式 spmatrix,并且还没有遇到任何东西(当然,矩阵太大而无法转换为密集矩阵)。任何想法如何做到这一点?

0 投票
1 回答
451 浏览

python - 在 Canopy python 中导入 CVXOPT

我想导入 CVXOPT 功能以在 Canopy python 编辑器中使用。据我所知,我已经成功下载了CVXOPT。我这么认为的原因是 CVXOPT 网站说“要测试安装是否成功,请转到示例目录并尝试其中一个示例”,我可以在命令行中执行此操作而不会出现任何错误。

但是,在我的 python 代码中,当我说

我收到一条错误消息,提示“没有名为 CVXOPT 的模块”。我认为问题一定很简单,但摆弄了一段时间并没有解决问题。有任何想法吗?

0 投票
2 回答
8106 浏览

python - 如何静音 cvxopt 求解器 [Python]?

每当我在终端中运行 Python cvsopt 求解器时,它都会打印:

我可以静音这个消息吗?谢谢!

0 投票
1 回答
1401 浏览

python - 用一些块作为变量 CVXPY 构建对角块矩阵

我想在 CVXPY 中生成一个(对角线)块矩阵(最好是稀疏的)。

有些块可以是eye(m)或任何东西,但我有一个块是:

然后我尝试将块对角矩阵形成W_diag为一个块,例如,通过:

我收到以下错误:

TypeError:不支持类型转换:(dtype('float64'),dtype('O'))

我能做些什么?其他方法?我想T稍后在 CVXPY 的约束中使用矩阵。

0 投票
1 回答
403 浏览

python - CVXOPT 二次编程接口

为 CVXOPT 提供的 QP 求解器解决了以下形式的问题(参见http://cvxopt.org/userguide/coneprog.html#quadratic-programming):

这很好用,但是当想要通过两侧的不等式解决问题约束时会有点尴尬:

我可以将第二个问题重新定义为第一个问题,方法是将维度数加倍并要求new_x将其old_x堆叠在自身之上:

我想我可以通过为A. h1然后,我可以将和h2不等式编码到 中,方法new_G * new_x <= new_h是设置new_hh1堆叠h2new_G成为对角矩阵,其中n连续1s 后跟对角线上的n连续-1s。

无论如何,以上内容非常笨拙,它使我的问题的维度增加了一倍,甚至可能不起作用。

是否有更好的方式来表达 CVXOPT 中的第二个问题?

0 投票
0 回答
1716 浏览

python - Python上的L1范数正则化最小二乘

L1-范数正则化问题定义如下:

但在我的情况下,我想解决这种形式的问题,而不是通常的 L1 范数正则化最小二乘问题:

由于我的表 W 和 G 没有像 AI 一样的尺寸,因此无法更改我的变量并解决这样的问题

这样我就可以使用互联网上可用的求解器之一。所以我找到了一个解决上述L1平方问题的方程,如:

据我所知,如果我使用 -u <= W G x <= ui 可以解决问题。但我无法得到我应该完全适应代码的内容。任何人都可以帮忙吗?代码如下(取自CVXOPT)

任何人都可以帮忙吗?先感谢您

0 投票
1 回答
294 浏览

python - CVXPY 上的内核匹配追求

我正在编写内核匹配追求的代码。在那,我已经习惯了 cvxpy 进行凸优化。我必须最小化基于这篇论文的以下目标:http: //ieeexplore.ieee.org/xpl/articleDetails.jsp? arnumber=6815769 ,代码如下:

但是,代码不起作用并抛出错误:不能将两个非常数相乘。我认为这是在“epirk”中将三个项相乘的问题。但是,我对此没有任何解决方案。请帮忙。

0 投票
1 回答
2542 浏览

python - 使用 CVXOPT 或 CVXPY 进行凸编程

我需要在 Python 中使用 CVXOPT 或 CVXPY 解决优化问题,但我遇到了困难。目标函数是

受以下约束

其中向量x是优化变量,向量ab是给定的,并且T是给定的标量。