Skip to content

二次优化问题 ​

定义 ​

当凸优化问题的目标函数是凸二次型并且约束函数为仿射时,该问题被称为二次规划(Quadratic Program, QP)。二次规划问题可以表示为

minimize12x⊤Px+q⊤x+rsubject toGx⪯hAx=b

其中 P∈S+n,G∈Rp×n。可以用下图来表示二次规划问题。

TikZ 代码
tex
\begin{tikzpicture}[line cap=round,line join=round,scale=0.9]
  % QP: ellipsoidal level sets and a polyhedral feasible set
  \draw[fill=gray!20] (-1.6,0.9) -- (0.1,1.7) -- (1.8,1.1) -- (1.9,-0.9) -- (0.3,-1.6) -- (-1.7,-0.8) -- cycle;
  \begin{scope}
    \clip (-2.4,-2.2) rectangle (3.4,2.6);
    \foreach \r in {0.7,1.15,1.6,2.05}
      \draw[rotate around={64:(2.3,2.1)}] (2.3,2.1) ellipse ({1.6*\r} and {0.68*\r});
  \end{scope}
  \fill (1.8,1.1) circle (1.4pt) node[below right] {$x^{\star}$};
\end{tikzpicture}

如图所示,二次规划的目标函数的等高线是一族椭球(同心椭圆),可行集是多面体 P,最优点 x⋆ 位于可行集边界上椭球与多面体相切的位置。

二次约束二次规划 ​

如果不仅是目标函数,而且不等式约束也是凸二次型,即

minimize12x⊤Px+q⊤x+rsubject to12x⊤Pix+qi⊤x+ri⩽0Ax=b

则称这一问题为二次约束二次规划(Quadratically Constrained Quadratic Program, QCQP)

线性规划是二次规划的特例,即取 P=0。二次规划是二次约束二次规划的特例,令 Pi=0 即可。

举例 ​

最小二乘及回归 ​

∥Ax−b∥22=x⊤A⊤Ax−2b⊤Ax+b⊤b

上面的凸二次函数是一个(无约束的)二次规划。我们在很多领域都会看到类似的式子,有些地方会称其为回归分析或者最小二乘逼近。这个问题很简单,可以求出其解析解 x=A†b。

投资组合优化 ​

投资组合优化是 QP 的经典应用:设各资产收益为随机变量,Σ∈S++n 为收益的协方差矩阵。在期望收益给定(预算 μ⊤x⩾rmin)、资金全部投入(1⊤x=1)且允许做空(即不加 x⪰0 约束;若不允许做空,则补上 x⪰0)的约束下,极小化收益方差(风险)

minimizex⊤Σxsubject toμ⊤x⩾rmin,1⊤x=1

这是一个 QP(目标函数凸二次,约束线性)。

二阶锥规划 ​

minimizef⊤xsubject to∥Aix+bi∥2⩽ci⊤x+di,i=1,⋯,mFx=g

称上述问题为二阶锥规划(Second-Order Cone Program, SOCP),其中 x∈Rn 是优化变量,Ai∈Rni×n,F∈Rp×n。并且我们称约束

∥Ax+b∥2⩽c⊤x+d

为二阶锥约束。

当 ci=0 时,SOCP 等同于 QCQP。当 Ai=0 时,SOCP 退化为(一般的)线性规划。