问题标签 [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.
python - CVXOPT 要求被忽略
我正在尝试解决 cvxopt 中的二次问题,但似乎忽略了其中一项要求
我想解决这组方程:
这是代码:
但我得到这样的结果:
所以不满足 x <= 20 的要求。可能是什么原因?
optimization - Cplex 可以将两个稀疏矩阵作为 Q 的输入吗
我正在尝试使用CPLEX MATLAB API最小化具有线性约束的非常大的二元二次规划问题。然而,二次函数 f = x'Qx 有一个非常密集的矩阵 Q。我可以用非常稀疏的矩阵 U 和 A 重写 Q:Q = U A。
因此,有没有办法将这些矩阵传递给 CPLEX,而不是完整的矩阵 Q(太大而无法存储)?
r - 一个数值问题solve.QP,R中的二次规划函数
假设我有以下数字很大的二次规划问题:
约束是Ax >= -e
:我将所有变量限制在 [0,1] 内。我猜是因为这里涉及的数字太大,会导致一些数字问题。如果我跑
我会得到Error in solve.QP(Q, c, A, bvec = -e) : constraints are inconsistent, no solution!
当我尝试将所有内容除以一个很大的数字以缩小这些疯狂的数字时,该函数能够生成一些输出,但不正确:
我认为正确的答案是
我真的不需要在这里进行 QP,因为Q
矩阵是对角的,但我只是想以此作为说明,并就处理与solve.QP()
. 假设我有一个密集Q
矩阵,我应该怎么做才能得到正确的结果?
提前致谢!
r - 使用 quadprog 对系数进行约束的加权最小二乘
我在使用 R 的quadprog
库来实现具有 2 个限制的加权最小二乘时遇到了困难。第一个限制是所有系数必须大于或等于 0。第二个限制是系数需要总和为 1。
更正式地说,我试图对 W 最小化以下等式:(Y - XW)^T * V * (Y - XW),其中 V 是对角矩阵。
Y 是 (px 1),X 是 (pxs),W 是 (sx 1),V 是对角线 (pxp)。下面是一个可重现的例子:我正在尝试找到合适的参数来使用quadprog::solve.QP
optimization - 最先进的非凸 QCQP 求解器?
你知道非凸 QCQP 求解器吗?对于学者或学生来说,免费软件将是一件大事。我试图找到这样的求解器但没有成功......
我的问题是以下形式:
- 具有线性(严格和非严格)不等式
- 在不等式之间具有逻辑约束(例如等价、含义)
- 令 X = {x1, ..., xn} 是一组变量,而 Y = {y1, ..., ym} 是一组变量。二次约束的形式如下:
- x1 = x1y1 + x2y2
- x2 = x1y3 + x3y4
- x3 = x2y5 + x1y6
- ...
- 左侧 X 的一个变量
- 等式约束
- 系数等于 1 的两个变量的乘积之和
- st 两个变量的每个乘积仅出现在 X 的一个变量和 Y 的一个变量之间。
目标函数是线性的。
谢谢您的帮助
matlab - 使用 fmincon 违反步长容差
我正在尝试使用 MatLab 的 fmincon 函数和 SQP 算法来解决非线性约束优化问题。正如我在文献研究中发现的那样,这个求解器已成功应用于我的问题。
我知道我的问题的解决方案,但 fmincon 很难可靠地找到它。在我的边界内使用随机生成的起始值运行优化 100 次时,我得到了大约 40% 的好结果。“好”意味着结果接近我接受的最佳值,尽管这些“好”结果对应于不同的 ExitFlags。最常见的是退出标志 -2 和 2:
“不良”结果偏离最佳解决方案的 2% 左右,并且也对应于 ExitFlags 2 和 -2。
我玩弄了公差,但没有成功。当放宽约束容差时,ExitFlag -2 的数量会减少,并且会出现一些 ExitFlag 1 的情况,但因此与最优解的偏差会增加。
一个大问题似乎是步长违反了它的容差。由于步长/步长范数太小(X 的相对变化低于 TolX),求解器通常在 2 或 3 次迭代后退出。有没有办法解决这些问题?我想调整解算器 In 以可靠地获得适当的结果。
供您参考,使用的选项:
python - CPLEX 目标函数中的线性和二次项
我想最小化一个相当简单的目标函数,但是我在从 Python API 到 CPLEX 的正确调用时遇到问题
我查看了如何使用set_quadratic
和set_quadratic_coefficients
here,但这并没有解决我的问题。
我的目标函数有一组线性变量和一组二次变量
一切正常,直到最后一次调用添加二次项。此时 CPLEX 将引发以下错误CPLEX Error 1226: Array entry 13919 not ascending.
两次,忽略该命令,并且 Python 代码继续。
我查了错误,但这似乎也没有帮助我。
我确实尝试重新编写上面的内容以首先按名称和下限添加变量......然后再调用set_linear
,set_quadratic
但这也无济于事。
我在这里想念什么?
c - 如何在 CPLEX 中为 UBQP 获得多个解
我已经在 C 中的 Callable Library 中的 CPLEX(v 12.6.2)中实现了一个 UBQP(这是一个没有约束和二进制变量的二次问题),我有兴趣获得多个解决方案(不仅是最佳解决方案,还有其他解决方案)可行的)。
我采用 CPLEX 原始 populate.cpp 代码并获取其例程以获得解决方案池,例如 CPXpopulate(env,lp)。
问题是我的解决方案池的大小始终为 1,它只包含最佳值。相反,如果我给 populate.cpp 一个 LP 问题(即最小化线性问题),它可以正常工作。
我尝试了常用的命令:
这应该会强制 CPLEX 生成更多解决方案,但事实并非如此。
如果我在 CPXPARAM_MIP_Pool_Intensity 中设置 N = 4(即最大值),则无法优化,但如果设置 N = 0,...,3 我得到的解决方案不会超过 1 个。
有没有办法在这类问题中获得多种解决方案?
python - 约束线性回归/二次规划python
我有一个这样的数据集:
并且想要拟合约束线性回归
y = b1*a + b2*b + b3*c
其中所有 b 的总和为 1 且为正数:b1+b2+b3=1
此处指定了 R 中的类似问题:
我怎样才能在python中做到这一点?
gurobi - Pearson 相关系数是否适合二次规划求解器的目标函数?
Pearson 相关系数——一个向量 x 是外生的,另一个向量 y 作为选择变量——对于像 Gurobi 这样的二次规划求解器来说是一个合适的二次目标函数吗?