问题标签 [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.
c - 从 R 调用这个 C 函数(libqp_gsmo.c)的方法是什么?
我有大规模的 QP 问题,所以我在 R 中使用了 Gurobi 优化器。但是,我希望使用通用的顺序最小优化算法,但我在 R 包中找不到它。所以我试图调用这个 C 函数,但到目前为止失败了。
如何从 R 调用这个 C 函数?
mathematical-optimization - 将变量约束在二次规划中的两个不相交范围之一
如何解决具有以下约束的二次优化问题:
最小化 (1/2)X^TQX + C^TX
服从 -0.01 < x_i < 0.01 或 0.05 < x_i < 0.20,对于 X 中的任何 x_i
其中Q是矩阵,C,X是向量。
似乎我无法将上述约束重新表述为标准约束或不等式约束
r - 最小化投资组合方差,限制为与基准投资组合足够相似
我正在执行投资组合优化,我想在这里扩展讨论如下:
我有一个权重向量w_bench
用作基准。我想优化一个w_pf
满足的投资组合权重向量
pmin
这是成对的最小值。这迫使优化的投资组合权重w_pf
与基准权重相似w_bench
,并且右手尺寸(在本例中为 0.7)控制它们需要匹配的紧密程度。随着该值变大,我们要求投资组合更加相似。
最初我以为我可以很容易地用fPortfolio
package 做到这一点(仍在尝试)。但到目前为止还没有骰子。我也认为解决这个问题quadprog
会更直观,但我不知道如何将所述功能合并到流程中。
Excel实现:
协方差矩阵:
重量:
最小化方差 ( =MMULT(TRANSPOSE(H8:H10),MMULT(H3:J5,H8:H10))
) 约束为Ss(w_pf) = 1
和Ss(min) > 0.7
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 的最后一行的预期语法是什么?(也就是说,假设我的数学重新表述是正确的......)
谢谢您的帮助 !
r - 对系数有约束的线性回归
对于这样的模型,我正在尝试执行线性回归:
所以,Y ~ X1 + X2
假设我有以下响应向量:
以及以下预测变量矩阵:
我想对系数使用以下约束:
所以对 b 没有限制。
我知道 glmc 包可用于应用约束,但我无法确定如何将它应用于我的约束。例如,我也知道可以使用 contr.sum 使所有系数总和为 0,但这不是我想要做的。solve.QP() 似乎是另一种可能性,meq=0
可以使用设置使所有系数都> = 0(同样,这不是我的目标)。
注意:解决方案必须能够处理响应向量 Y 中的 NA 值,例如:
c# - 优化二维数组中的数量分布
我有一个问题,其中给出了二维数组的每一行和每一列的总和,我们必须在数组的每个单元格中分配数量。将有一些单元格将被锁定,您不能将它们用于分发。此外,行/列的总量可以是十进制值。
例如,我们有一个 4*3 二维数组
其中每行之和为 10,20,30,35,每列之和为 35,30,30。
E、I 和 K 被锁定,因此方程变为
我使用 Python scipy 和 IBM CPLEX(C#) 尝试了线性 f(x) = Min(x) 和二次求解器 f(x) = Min(x^2)。
线性求解器不会优化分布。
二次求解器有助于这种方法,但它不适用于大小大于 10*10 的数组。求解器以不可行状态失败。
考虑到总数可以有十进制值并且矩阵的大小可以达到 100*10000 ,我应该使用什么方法/库来解决这个问题?
matlab - Matlab 的 fmincon 和 quadprog 情况下线性情况的区别
我正在尝试将我的 quadprog 线性二次问题转换为 fmincon,以便稍后我可以添加非线性约束。当我使用这两种方法(针对同一个问题)比较我的解决方案时,我遇到了困难。奇怪的是,当我得到几乎相同的 x 值时,我得到了非常不同的成本输出。下面是我的代码的简化案例,没有约束。
在这里,我的目标函数是
我得到的 x1 和 x2 是
这是有道理的,因为它们是不同的求解器,所以它们略有不同。
但是我的优化成本是
这是否意味着我的目标函数与我的 H 和 f 不同?任何帮助,将不胜感激。
r - 使用二次求解的约束投资组合优化
我正在努力解决 R 中的投资组合优化问题,并且我正在努力寻找关于如何使用solve.QP 对约束等进行编码的共识。
本质上,我已经计算了 n 个资产收益的协方差矩阵,我理解为 Dmat,但是,我不确定其余的。我希望我的约束纯粹是所有权重总和为 1,并且它们的绝对值必须都低于某个大小(max.allocation),即
因此,我的想法是否正确,我的 Amat 应该是:
另外,我的 bvec 应该是:
我是否正确地相信,因为只有一个约束是 meq=1 的等式?最后,我的研究似乎指向:
但如果是这样的话,资产的平均收益在哪里会出现问题呢?
我要做的只是解决投资组合权重并最小化给定投资组合回报的投资组合标准偏差,而不是绘制有效边界。
我已经看到了economyatlarge 的帖子,它把我带到了现在的位置。道歉,因为我是这种解决技术的新手,但任何有助于简化和清除我的参数需要的帮助都会有很大帮助。
谢谢。