二次规划

维基百科,自由的百科全书
跳转至: 导航搜索

二次规划Quadratic programming),在运筹学当中,是一种特殊类型的最佳化问题。

简介[编辑]

二次规划问题可以以下形式来描述:

f(x)=(1/2)x^TQx + c^Tx

受到一個或更多如下型式的限制條件:

Ax \le b
 E x = d

x^Tx 的转置。

如果Q是半正定矩阵,那么f(x)是一个凸函数。如果有至少一个向量x满足约束而且f(x)在可行域有下界,二次规划问题就有一个全局最小值x。 如果Q是正定矩阵,那么全局最小值就是唯一的。如果Q=0,二次规划问题就变成线性规划问题。

根据优化理论,一个点x 成为全局最小值的必要条件是满足 Karush-Kuhn-Tucker(KKT)条件。当f(x)是凸函数时,KKT条件也是充分条件。

当二次规划问题只有等式约束时,二次规划可以用线性方程求解。否则的话,常用的二次规划解法有:内点法(interior point)、active set和共轭梯度法等。凸集二次规划问题是凸优化问题的一个特例。

对偶[编辑]

每个二次规划问题的对偶问题也是二次规划问题。我们以正定矩阵Q为例:

L(x,\lambda) = (1/2)x^TQx + \lambda^T(Ax-b) + c^Tx

对偶问题g(\lambda),可定义为

g(\lambda) = \inf_x L(x,\lambda)

我们可用 \nabla_x L(x,\lambda)=0: 得到L的极小

x* = -Q^{-1}(A^T\lambda+c),

对偶函数:

g(\lambda) = -(1/2)\lambda^TAQ^{-1}A^T\lambda - c^TQ^{-1}A^T\lambda - b^T\lambda

对偶问题为:

maximize : -(1/2)\lambda^TAQ^{-1}A^T\lambda - (c^tQ^{-1}A^T+b^T)\lambda

subject to :\lambda \ge 0

计算复杂性[编辑]

当Q正定时,用椭圆法可在多项式时间内解二次规划问题。当Q非正定时,二次规划问题是NP困难的(NP-Hard)。即使Q 只存在一个负特征值时,二次规划问题也是NP困难的。