解决矩阵而不是向量的二次规划

时间:2018-01-11 06:58:34

标签: matrix optimization linear-algebra minimization quadratic-programming

我正在研究二次规划问题。

所以我得到了两个矩阵A和B(实际上是时间序列),我想找到矩阵X,s.t。在X包含所有正值的条件下,A * X最接近B. (所以X可以看作是一个权重矩阵)

由于它是一个最小化问题,并且X有限制,我正在考虑使用二次规划。具体来说,我的目标是找到X:

min sum (A*X - B).^2,   that is:

min sum 1/2 X^t * (A^t*A) * X - (B^t*A) * X
s.t. X is positive

这种形式似乎与QP问题非常相似:

1/2 x^t*Q*x + c^t*x
s.t. A*x < b

我的问题是:

My X is a matrix instead of a vector in QP.
Is there a variant of QP for this problem? Am I right to head to QP?

How to represent the limitation on X positive?

如果您能具体了解R功能,那就太棒了。

非常感谢!

1 个答案:

答案 0 :(得分:1)

使用QP算法解决这个问题应该是凸的和直接的。我经常将其重写为:

 min sum((i,k),d^2(i,k))
 d(i,k) = sum(j, a(i,j)*x(j,k)) - b(i,k)
 x(j,k) ≥ 0, d(i,k) free

现在这显然是凸的(对角Q矩阵)。在某些情况下,这种形式可能比将所有内容都放在目标中更容易解决。从某种意义上说,我们使问题变得不那么非线性。您也可以使用不同的标准将其解析为LP:

 min sum((i,k),abs(d(i,k)))
 d(i,k) = sum(j, a(i,j)*x(j,k)) - b(i,k)
 x(j,k) ≥ 0, d(i,k) free

 min sum((i,k),y(i,k))
 -y(i,k) ≤ d(i,k) ≤ y(i,k)
 d(i,k) = sum(j, a(i,j)*x(j,k)) - b(i,k)
 x(j,k) ≥ 0, y(i,k) ≥ 0, d(i,k) free