二次规划

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

簡介
一個有n個變數與m個限制的二次規劃問題可以用以下的形式描述。首先給定:

  • 一個 n 維的向量 \mathbf{c}
  • 一個 n\times n 維的對稱矩陣 Q
  • 一個 m\times n 維的矩陣A
  • 一個 m 維的向量 \mathbf{b}

則此二次規劃問題的目標即是在限制條件為

:Ax \le b

的條件下,找一個 維的向量 ,使得

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

為最小。其中x^T是x的转置。

根據不同的參數特性,可以得到對問題不同的結論

  • 如果Q是半正定矩阵,那么f(x)是一个凸函数。相应的二次规划为凸二次规划问题;此时若约束条件定义的可行域不为空,且目标函数在此可行域有下界,则该问题有全局最小值。
  • 如果Q是正定矩阵,则该问题有唯一的全局最小值。
  • 若Q为非正定矩阵,则目标函数是有多个平稳点和局部极小点的NP问题。
  • 如果Q=0,二次规划问题就变成线性规划问题。

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

当二次规划问题只有等式约束时,二次规划可以用线性方程求解。否则的话,常用的二次规划解法有:

  • 内点法(interior point)
  • active set
  • 共轭梯度法
  • 椭球法 若Q为正定矩阵,则相应的二次规划问题可由椭球法在多项式时间内求解。
  • 增广拉格朗日法
  • 梯度投影法

凸集二次规划问题是凸优化问题的一个特例。

对偶
每个二次规划问题的对偶问题也是二次规划问题。以正定矩阵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困难的。即使Q只存在一个负特征值时,二次规划问题也是NP困难的。

参考文献

评论 (0)

  • 还没有评论,来抢沙发吧。