问题标签 [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 回答
432 浏览

python-3.x - 绝对值函数不被识别为有纪律的凸程序 (CVXPY)

我正在尝试使用 CVXPY 运行以下优化:

但是,我收到以下错误:

cvxpy.error.DCPError:问题不遵循 DCP 规则。具体来说:
目标不是 DCP。它的以下子表达式不是:
param516 @ abs(var513 + -param515)

绝对函数是凸的。因此,我不太确定为什么 CVX 会为目标中的绝对值函数抛出错误。

0 投票
1 回答
52 浏览

optimization - Iterating of elements in array

I am trying to write a code of CPLEX OPL on an example of (from control systems) a typical MPC (Model Predictive Control) problem. As described, here:

With optimization variables:

With following parameters:

I have tried to write it but I am stuck at iteration of the array of variable "x" (state variable) as mentioned in the constraint of the optimization problem. The code I have so far written on OPL CPLEX is given as: (The model file as .mod extension on OPL platform)

And the data file which I am using is given as: (the data file of OPL platform with .dat extension)

Therefore, I need help kindly to solve this system as I am unable to solve the matter of iteration in the variable of the state variable in the constraint of the given problem.

Your kind help will be highly appreciated as I am stuck on this one for several weeks.

0 投票
0 回答
91 浏览

optimization - Python 中的混合整数半定规划 (MISDP) 求解器

我刚刚意识到,当存在半定约束时,MOSEK 不支持混合整数凸规划 (MICP) 问题。包装函数在 MATLAB (YALMIP) 和 Julia (Pajarito) 中可用。我想知道是否有针对 MISDP 问题的基于 Python 的求解器,或者是否有一种简单的方法来解决它?

0 投票
2 回答
109 浏览

python - CVXR 中 DCP 规则的问题

我正在使用CVXR建模包来解决凸优化问题。我确定问题是凸的并且它遵循 DCP 规则,但是如果我使用CVXR它检查 DCP 规则,则返回False. 但是,如果我遇到完全相同的问题并使用它检查CVXPY它返回True(如预期的那样)

这里发生了什么?我附上了 R 和 Python 中这种行为的最小可重现示例:

R代码使用CVXR

Python代码使用CVXPY

有人可以解释这里发生了什么以及如何解决它以便我可以使用 CVXR 吗?

0 投票
1 回答
196 浏览

r - 使用 cvxr 将目标函数中的两个变量相乘

我想最小化以下目标函数

目标函数

有一些限制

约束

另一个用户(我认为是G. Grothendieck)建议使用CVXRR 的包。

所以我按照A Gentle Introduction to CVXR的说明来制作我的代码

关于如何将二次程序转换为线性程序? 我找到了有助于解决双线性公式部分问题的McCormick 信封part_of_OF的提示。尤其是那part_of_OF部分。

josliber的回答结束时,他评论说,所有变量都应该有一个界限。在我的约束中没有上限,因此我插入了一个上限。这是一个随意的选择。如果解决方案在边界上,您必须重新计算新的边界......

这里的解决方案不是我所期望的......当我用solve.QP()then 解决相同的目标函数时,我得到结果_x结果_y。为了建立代码看看我的另一个问题......

让我们检查一下代码:

问题

  • 为什么两个结果不同?
    • 在哪些解决方案中我犯了错误?可以指出它们吗?
  • 当我从结果中输入 x 和 y 时,我没有得到$value替代solve.QP()方案
    • 做数学的时候公式问题
    • 正如你所看到的结果并不重合
    • 我在这里做错了吗?!

提前谢谢了!

0 投票
1 回答
117 浏览

r - 目标函数中双线性项的松弛 - 使用 CVXR 和 McCormick 包络

我有一个目标函数

目标函数

有一些限制

约束

我想最小化。

我想使用 R 包CVXRMcCormick 信封

让我们检查一下代码:

但遗憾的是,这是一个缺点

  • x 值和的值y 值只是近似值,因为 McCormick 是约束的松弛。
  • 这些是真正的价值观:
    • true_xy

为了克服这个缺点,您可以使用这种方法(请参阅 josliber 的答案),在其中将间隔拆分为一个变量。就像josliber我在 x 变量上分开了......

在以下部分中,我的问题出现了 - 但首先看看我的代码:

问题

  1. 为什么josliber只使用四个不等式中的两个?
    • 因此,我也在代码中尝试了第二个约束替代方案

在此处输入图像描述

  1. 你能帮我解决我的问题吗?!
    • 我想我必须使用第二个约束替代方案,但这里的值solution_OF$getValue(x'ses)是如此之高,以至于像josliber提到的那样总结它们不会让我得到预期的结果x=2
    • 在这两种选择中,都有两个约束x+2*y <= 10x+y <= 6。由于我将 x 范围分成五个子部分,我必须转换它们吗?
  2. 是否也可以拆分多个变量?参考josliber回答
0 投票
0 回答
24 浏览

matlab - 使 matlab (CVX) 在集群上更快

我正在集群上运行matlab优化作业CVX,我尝试使用更多的 CPU 来加速计算,

#SBATCH --cpus-per-task=16

但是我发现优化工作中每次迭代的时间没有变化,我应该怎么做才能让它更快?

PS我的matlab代码(test.m)是,

我的slurm剧本是,

0 投票
0 回答
26 浏览

matlab - CVX 中的问题表述 - MATLAB 2020b

我是 CVX 的新手,我必须解决以下优化问题。

优化问题

我已经为它编写了代码,并且还更改了等式以使其凸出,但我认为我的代码中存在一些我无法弄清楚的问题。

它是用 MATLAB 2020b 编写的,可以在任何地方出错,这是我运行它时得到的输出

检测到微不足道的不可行性;解析确定的解决方案。状态:无界最佳值(cvx_optval):-Inf

0 投票
0 回答
13 浏览

r - CVXR 忽略非负约束

我正在尝试使用 CVXR 运行以下优化程序,该程序在 x 上找到权重,从而最小化平方误差的总和,前提是权重都是非负的并且总和为 1。当我使用下面的示例运行它时,我得到了权重1.004620896 和 -0.004616312 尽管指定权重必须大于或等于 0。我知道 CVX 具有可行性容差,但我相信它远小于 0.004,所以我不确定我为什么要得到这个解决方案?

这是我尝试运行的代码:

谢谢您的帮助!

0 投票
0 回答
50 浏览

python - CVXPY 在简单的二次问题中获得无穷大

我正在使用 CVXPY 解决一些优化问题,而且我一直在无穷大。然后我得到最简单形式的单变量二次问题,它仍然是无穷大。CVXPY 的版本是 1.0.25,我尝试了默认求解器、OSQP 和 MOSEK 求解器。有人可以帮忙吗?