问题标签 [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 投票
1 回答
1180 浏览

r - 用 R 求解约束二次规划

我真的很喜欢R,但有时它真的让我头疼……

我有以下简单的二次最小化问题,可以在 Excel 中立即制定和解决(点击图片放大):

在此处输入图像描述

![在此处输入图像描述

问题本身非常简单:我想(w1^2+w2^2)/2通过找到 的最佳组合w1来最小w2bY*(w1*X1+w2*X2+b) >= 1

我知道有quadprog解决这类问题的包,但我发现它太不直观了,我无法正确指定问题:-( 我不想这么说,但 Excel 似乎更适合指定像这些优化问题:-(((

我的问题
如何正确制定上述问题,以便可以用 R (无论哪个包)解决,并且程序得出正确的值w1w2b(如上图所示)。请不要只发布链接,但请提供有效的实际代码。如果您可以评论您的代码,那就太好了,这样您就可以清楚地知道您为什么要做这些事情。谢谢!

必要的数据在这里:

附录
有些人对我提供代码(而不仅仅是链接)的要求感到不快。我为此道歉并给出了我的理由,即到目前为止我在 SO 的答案中没有找到任何好的方法。更深层次的原因是这个问题在某种意义上是不寻常的,b它只存在于约束中而不存在于目标函数中。所以我仍然认为这个问题很适合SO。

0 投票
2 回答
397 浏览

matlab - 大规模二次规划

我有一个可扩展的二次规划问题,它有大约 50-1000 个具有线性约束的变量。我正在尝试为此找到一个有效的解决方案。对于我的问题,matlab qp 求解器只能求解 100 个变量的最优值。cplex会更好吗?还有其他我可以使用的工具吗?

0 投票
4 回答
594 浏览

matlab - MATLAB:查找最小化矩阵元素总和的矩阵的缩写版本

我有一个151 × 151矩阵A。它是一个相关矩阵,因此主对角线上有1s,主对角线上方和下方有重复值。每行/列代表一个人。

对于给定的整数n,我将通过将人们踢出去来寻求减小矩阵的大小,这样我就剩下一个n-by-n相关矩阵,它可以最小化元素的总和。除了获得缩写矩阵之外,我还需要知道应该从原始矩阵中引导出来的人的行号(或他们的列号 - 他们将是相同的数字)。

作为起点,我A = tril(A)会从相关矩阵中删除多余的非对角元素。

相关矩阵

因此,如果n = 4我们有上面假设的5 × 5矩阵,那么很明显应该将第 5 个人踢出矩阵,因为那个人贡献了很多非常高的相关性。

很明显,不应该把第 1 个人踢出去,因为那个人贡献了很多负相关,从而降低了矩阵元素的总和。

我明白那个sum(A(:))将汇总矩阵中的所有内容。但是,我非常不清楚如何搜索最小可能的答案。

我注意到一个类似的问题Finding sub-matrix with minimum elementwise sum,它有一个蛮力解决方案作为公认的答案。虽然该答案在那里工作正常,但对于151 × 151来说是不切实际的矩阵

编辑:我曾考虑过迭代,但我认为这并没有真正最小化简化矩阵中元素的总和。下面我有一个4 × 4粗体相关矩阵,边缘是行和列的总和。很明显,n = 2最优矩阵是涉及 Person 1 和 4 的2 × 2单位矩阵,但根据迭代方案,我会在迭代的第一阶段踢出 Person 1,因此算法提出了一个解决方案:不是最优的。我写了一个程序,它总是生成最优解,当 n 或 k 很小时它运行良好,但是当试图做出最优的75 × 75 151 ×151矩阵 我意识到我的程序需要数十亿年才能终止。

我依稀记得有时这些n 选择 k问题可以通过避免重新计算事物的动态编程方法来解决,但我不知道如何解决这个问题,谷歌搜索也没有启发我。

如果没有其他选择,我愿意牺牲精度来换取速度,否则最好的程序需要一个多星期的时间才能产生精确的解决方案。但是,如果程序能够生成精确的解决方案,我很乐意让程序运行长达一周。

如果程序不可能在合理的时间范围内优化矩阵,那么我会接受一个答案,解释为什么不能在合理的时间范围内解决n 选择这种特定类型的 k 个任务。

4x4 相关矩阵

0 投票
2 回答
121 浏览

matlab - 在 MATLAB 中求解二次优化

我有一个无约束的二次优化问题 - 我必须找到 u 来最小化范数 (u^H * A_k *u - d_k)) 其中 A_k 是 4x4 矩阵 (k=1,2...180) 并且 u 是 4x1 向量(H 表示厄米特)。

MATLAB 中有几个函数可以解决优化问题,但我无法弄清楚我需要为我的 OP 使用的方法。如果有人给我一些提示或建议以在 MATLAB 中解决此问题,我将不胜感激。

0 投票
1 回答
638 浏览

r - 使用二元决策变量和模拟数据库进行优化

我有一个模拟观察的数据框,我正在尝试进行优化,以在给定的风险水平下获得最大的成功。问题是我不知道如何在约束中编程。这是我的 DF 的一个子集,行是团队,X1:X10 是成功和失败的模拟结果

目标是最大化sum(colMeans(DF))

根据下面的评论,我想我会写出我要解决的数学问题。从研究看来,有几种不同的方法可以做到这一点,但我不知道如何编写约束。我更大的数据集是 10,000 X 10,000。

一种方法

目标函数 = Max(average(sum(Simutaltion [i])

约束:

观察是二元的

观察 = 4

SD(portfolio)) < X 或 Min(success) > 3

其他方法:

目标函数 = Min(SD(sum(Simutaltion [i])) 或 Max((average(sum(Simutaltion [i])/(SD(portfolio))

约束:

观察是二元的

观察 = 4

平均值(总和(Simulatin[i]))> 5

所以我一直在玩这个,我开始有所收获。

当我进行此更改时, bvec = c(1, rep(0|-.25, n)) 我得到一个基本上全为 0 的解决方案,

使用 tseries 并得到了这些结果,

如果我可以为 tseries 获得一个重量限制,那也可以。

有关编辑约束的任何提示也希望添加最小成功率作为约束。谢谢,

0 投票
2 回答
1731 浏览

r - 最小化受范数不等式约束的二次函数

我正在尝试解决以下不等式约束:

给定 N 个股票的时间序列数据,我试图构建一个投资组合权重向量以最小化收益的方差。

目标函数:

其中w是权重向量,\sum是协方差矩阵,e_{n}^{T}是 1 的向量,C是常数。其中第二个约束 ( \left \| w \right \|) 是不等式约束(权重的 2 范数)。

我尝试使用该nloptr()函数,但它给了我一个错误:提供的算法不正确。我不确定如何选择正确的算法,也不确定这是否是解决此不等式约束的正确方法。

只要能解决这个限制,我也愿意使用其他功能。

这是我尝试的解决方案:

0 投票
0 回答
147 浏览

optimization - 最小化 svm 对偶形式

我需要最小化以下等式以实现要最小化的 c-svm 目标函数 我知道我应该实现随机子梯度下降算法来最小化上述目标函数,但我不知道该怎么做。

以下算法是为上述优化问题实现随机次梯度下降的正确方法吗? 我的随机次梯度下降的实现

0 投票
1 回答
209 浏览

matlab - 使用matlab进行符号二次优化

我试图最小化以下表达式: U 和 W 并不重要,您可以将它们视为 I

我试图在给定 y,x^H 和 A. 的情况下最小化 x,并将 U 和 W 作为单位矩阵。

我尝试了 fmincon 但没有成功,这就是我所做的

任何帮助,将不胜感激

0 投票
1 回答
310 浏览

python - 使用 LIBLINEAR 或 LIBSVM 进行自定义 SVM 优化

我有一个 PU 学习任务,我在这篇论文中发现了一个看起来像解决它的特殊算法:https ://www.cs.uic.edu/~liub/publications/ICDM-03.pdf

我希望实现第 5 部分中描述的“有偏”SVM 的非标准公式。

它使用两个参数 C+ 和 C- 来对正错误和负错误进行不同的加权。

我想我会在这个问题上使用现有的 SVM 求解器,不仅可以加快跑腿工作,还可以确保最佳时间复杂度,因为我的特征空间和样本数量都非常大(因此我希望使用 LIBLINEAR)。

有没有办法像上面那样指定自定义损失函数?

谢谢您的帮助。

0 投票
1 回答
187 浏览

javascript - 在 JavaScript 中使用 quadprog 的投资组合优化约束错误

我无法弄清楚在 numeric.js 中使用 quadprog 进行的投资组合优化(找到最佳权重)我做错了什么

我的投资组合限制很简单:权重总和应为 1,所有权重(对于 3 种资产中的每一种)应介于 0 和 1 之间(无卖空,无杠杆)。约束未被识别,权重变得非常高(也是负数)。

任何提示表示赞赏。谢谢