问题标签 [quadratic-programming]

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 投票
0 回答
56 浏览

mathematical-optimization - 如何识别非 PSD 二次程序 (QP) 中的所有最小值?

我有多个不相交的全局最优(不是 PSD)的线性约束 QP 问题。我想让 QP 求解器表征所有全局最优解。这是出现的这种情况的一个非常简单的示例:

这里,在 x 轴 [0.5,1] 上有一段连续的最优 (f=0) 解,在 y 轴上有另一段不连续的最优解。我已经用 NumLoc 和 NumSol 的高值向 BARON 提出了这个问题,但它似乎在找到单点解决方案后过早地放弃了。(尝试了 BARON,因为它似乎确实擅长在其他问题中找到多点解决方案。)

对于此类问题,是否有更好的方法或解决方案?

0 投票
3 回答
6828 浏览

python - 使用 Numpy 在 Python 中进行二次编程?

我正在将一些 MATLAB 代码翻译成 Python。有一条线给我带来了一些麻烦:

我在 MATLAB 中查找了文档,发现 quadprog 函数用于优化(特别是最小化)。

我试图在 Python 中找到一个类似的函数(使用 numpy),但似乎没有。

有没有更好的方法将这行代码翻译成 Python?或者还有其他可以使用的包吗?我是否需要创建一个完成相同任务的新功能?

感谢您的时间和帮助!

0 投票
1 回答
64 浏览

constraints - 如何仅使用 Scilab 的二次求解器 qpsolve 的下限和上限?

我有一个简单的问题。如果我只想使用下限和上限限制,如何使用 Scilab 的命令 qpsolve?

该命令可以这样使用:

但我想像这样使用它:

只有 ci 和 cs 应该解释向量 x 的限制。不幸的是,该命令不能为空 []。我应该将 [] 作为一或零的行向量吗?

https://help.scilab.org/docs/6.0.1/en_US/qpsolve.html

0 投票
1 回答
171 浏览

r - ROI 包没有为不受约束的 QP 提供解决方案(qpoases 求解器)

我正在设置一个简单的 QP 来测试 ROI R 包。但是,当它不受约束时,包不能为简单的玩具问题提供错误的解决方案。

例子,

看起来不错。但是当我解决我遇到的问题时,

那很奇怪。在相关说明中,当我使用 quadprog 求解器时,我能够获得不受约束的解决方案 (= 1),但是由于其他原因,我不得不从使用 quadprog 切换到 qpoases。

任何帮助深表感谢。

编辑:

奇怪的是,这行得通,

0 投票
2 回答
289 浏览

optimization - 使用 CVXOPT 进行大量变量的二次规划

我是 CVXOPT 的新手。我已经在 CVXOPT 文档中尝试了示例二次程序(带有 2 个变量),并且我能够理解它。现在我需要解决具有大量变量(例如:100 个变量)的二次规划问题。如何使用 CVXOPT 做到这一点?

我要解决的问题如下所示。

最小化

这样,

在这里,d(t)已知 t=(1, ...,100)。

x(t)对于 t=(1, ...,100) 是决策变量。  

干杯!!! 

0 投票
2 回答
825 浏览

r - R:投资组合优化解决。QP 不是正定的

我正在尝试在 R 中执行投资组合优化(均值方差)。但是,我收到以下错误:

“solve.QP(Dmat, dvec, Amat, bvec, meq = 2) 中的错误:二次函数中的矩阵 D 不是正定的!”

我有四个约束:

  1. 预期回报率为 4.8%
  2. 权重加起来为 1
  3. 无短路
  4. 单项重量 <0.7

下面是我的代码:

输入数据是data.frame10,000 行(返回数据)和 10 列(资产)。

非常感谢您的帮助!!!

编辑:由于我不能使用solve.QP,我用ipop(kernlab)尝试了它,但我在正确设置参数时遇到了困难。我仍然需要 l、u 和 r。

0 投票
0 回答
350 浏览

python - 大规模约束二次规划?

我正在研究一个大型 CQP 问题,有 150 万个整数变量(实际上是连续松弛)和约 200 个二元约束(用于选择变量以使它们的总和为 [= | <] b)加上非负约束对于所有变量。我的 obj 函数是最小化 var 数组和另一个具有相同形状的数组(对应于前一个时间步长)之间的 de KL div - 所有变量的总和(以便分配可能的最大值)。

我已经尝试将 cvxpy 与 SCS 求解器(以及 Ecos、ecos_bb)以及 cvxopt、pull、scipy 一起使用……但我还没有找到一个合理且有效的解决方案。是否有任何求解器(希望是开源的)或方法可以相对轻松地解决此优化问题?

0 投票
1 回答
648 浏览

python - CPLEX 二次目标 CPLEX 错误 1017:不适用于混合整数问题

我正在尝试使用 cplex 解决以下线性程序:

当我打电话给solve()Cplex 时会抱怨错误消息CPLEX Error 1017: Not available for mixed-integer problems。如果我删除上面的二次目标,而是通过取消注释上面的代码行(obj = [1.0] * len(self.params),)来添加一个线性目标,它可以正常工作。

堆栈跟踪:

为了更好地了解这里发生了什么,当目标是二次的时,我试图最小化一些误差项的平方和。当目标变为线性时,我将最小化这些项的绝对值之和。名称开头的变量e是误差项,ls 将通过这些约束成为它们的绝对值:

在存在二次目标的情况下,这些l<index>变量实际上是无用的。

还有其他线性约束,我不能在这里包括,但由于以下两个原因,它们绝对不是问题的原因:

  1. 线性物镜在它们存在的情况下可以正常工作
  2. 当我使用二次目标将它们注释掉时,我仍然得到同样的错误。

我在这里想念什么?

0 投票
2 回答
903 浏览

python - 求解欠定线性方程 Ax + By = C 其中 y 受 x 约束

我是优化新手,一直在努力求解线性方程 Ax + By = C 中的变量 x 和 y,而 y 受 x 的解约束。问题的一个例子可以是:

求解xyAx +By = C约束x为非负且-0.7*x0 < y0,y1 <0.7*x0, -0.7*x1 < y2,y3 <0.7*x1... ( -0.7x[i] < y[2i],y[2i+1]<0.7x[i] )

如果有人可以向我推荐一个解决此问题的 python 包,或者以某种方式将我的问题转换为可以直接使用 Scipy.optimize 等库解决的更传统的格式,我将不胜感激

0 投票
1 回答
306 浏览

python - 使用 Scipy 进行线性规划失败,但二次规划成功找到了解决方案

我正在尝试用 Python 解决线性编程问题。Ling 程序未能找到解决方案。但是四边形程序有效。我不明白为什么,我不确定我在 linprog 和 quad 程序中的程序表述是否等效。

下面是班轮编程问题、我的代码和来自 linprog 的错误消息。

在此处输入图像描述

代码

来自 linprog 的错误消息失败

您可以安装quad程序

有关使用 quadprog 的示例,请参见