凸优化

凸优化问题的标准形式

minimizef0(x)subject tofi(x)0,i=1,,maix=bi,i=1,,p \begin{aligned} \mathrm{minimize} \quad & f_0(x) \\ \mathrm{subject\ to} \quad & f_i(x) \leqslant 0, \quad i = 1, \cdots, m \\ & a_i^{\top}x = b_i, \quad i = 1, \cdots, p \end{aligned}

其中 f0,,fmf_0, \cdots, f_m 是凸函数。相较于一般的优化问题而言,凸优化问题还需要满足如下条件:

  • 目标函数是凸函数
  • 不等式约束是凸的
  • 等式约束 hi(x)=aixbih_i(x) = a_i^{\top}x - b_i 是仿射函数

凸优化问题的可行域也是凸的。因此,在凸优化问题中,我们最小化凸集上的凸目标函数。

同理,如果函数 f0f_0 是拟凸函数而不是凸函数,则称该问题是一个(标准形式的)拟凸优化问题。

凹最大化问题

若目标函数 f0f_0 是凹函数,则称最大化问题

maximizef0(x)subject tofi(x)0,i=1,,maix=bi,i=1,,p \begin{aligned} \mathrm{maximize} \quad & f_0(x) \\ \mathrm{subject\ to} \quad & f_i(x) \leqslant 0, \quad i = 1, \cdots, m \\ & a_i^{\top}x = b_i, \quad i = 1, \cdots, p \end{aligned}

凸优化问题。这是因为凹最大化问题可以转化为极小化 f0-f_0 得以求解。

凸优化问题的抽象形式

考虑 R2\mathbf{R}^2 上的问题

maximizef0(x)=x12+x22subject tof1(x)=x11+x220h1(x)=(x1+x2)2=0 \begin{aligned} \mathrm{maximize} \quad & f_{0}(x)=x_{1}^{2}+x_{2}^{2} \\ \mathrm{subject\ to} \quad & f_{1}(x) = \dfrac{x_{1}}{1+x_{2}^{2}} \leqslant 0 \\ & h_{1}(x)=\left(x_{1}+x_{2}\right)^{2}=0 \end{aligned}

根据凸优化的定义,它不是一个凸优化问题。因为等式约束 h1h_1 不是仿射函数,并且不等式约束 f1f_1 也不是凸函数。不过,该问题的可行域却是凸集

{xx10,x1+x2=0} \{ x \mid x_1 \leqslant 0, x_1 + x_2 = 0 \}

从客观上讲,我们最小化了凸集上的凸函数。那么为什么根据凸优化的定义,它不是一个凸优化问题呢?

上述问题其实和下面的问题等价

maximizef0(x)=x12+x22subject tof~1(x)=x10h~1(x)=x1+x2=0 \begin{aligned} \mathrm{maximize} \quad & f_0(x)=x_1^2+x_2^2 \\ \mathrm{subject\ to} \quad & \tilde{f}_1(x) = x_1 \leqslant 0 \\ & \tilde{h}_1(x)=x_1+x_2=0 \end{aligned}

显然该问题是一个凸优化问题。我们称原问题是一个抽象的凸优化问题,即凡是在凸集上最小化凸函数的问题都可以被称为抽象的凸优化问题。但是,我们不讨论这类问题,还是需要用凸不等式和线性等式来进行约束。

局部最优解和全局最优解

凸优化问题的一个基本性质是,任何局部最优点一定是全局最优点。从几何上看,如果点 xx 是凸优化问题的最优解,那么 f0(x)-\nabla f_0(x) 定义了 XXxx 处的一个支撑超平面。

可微目标函数的最优性准则

设凸优化问题的目标函数 f0f_0 是可微的,那么 x,ydomf0\forall x, y \in \operatorname{dom} f_0

f0(y)f0(x)+f0(x)(yx) f_0(y) \geqslant f_0(x) + \nabla f_0(x)^{\top} (y-x)

XX 表示可行域,即

X={xfi(x)0,i=1,,m,hi(x)=0,i=1,,p} \begin{aligned} X = \{ x \mid f_i(x) & \leqslant 0, i=1,\cdots,m, \\ h_i(x) &= 0, i=1,\cdots,p \} \end{aligned}

那么 xx 是最优的当且仅当

yX,f0(x)(yx)0 \forall y \in X, \quad \nabla f_0(x)^{\top} (y-x) \geqslant 0

这意味着 f0(x)-\nabla f_0(x) 定义了 xx 处可行域的支撑超平面。

最优性条件的证明

本文从略

无约束凸优化问题

对于无约束凸优化问题,xx 是最优解的充要条件是

f0(x)=0 \nabla f_0(x) = 0

这就是我们非常熟悉的利用导数等于零来求极值的方法。

无约束二次优化是一个很好的例子,考虑 Rn\mathbf{R}^n 上的目标函数

f0(x)=12xPx+q+r f_0(x) = \dfrac{1}{2} x^{\top}Px + q^{\top} + r

其中 PS+nP \in \mathbf{S}^n_+xxf0f_0 的极小值的充要条件是

f0(x)=Px+q=0 \nabla f_0(x) = Px + q = 0

上面的线性方程组的解决定了无约束二次优化的最优解。根据非齐次线性方程组 Px=qPx = -q 的解的三种情况,可以得到如下结论:

  • 原问题无最优解(线性方程组无解)
  • 原问题有唯一最优解(线性方程组有唯一解)
  • 原问题有无穷多个最优解(线性方程组有无穷多组解)

只含等式约束的问题

minimizef0(x)subject toAx=b \begin{aligned} \mathrm{minimize} \quad & f_0(x) \\ \mathrm{subject\ to} \quad & Ax = b \end{aligned}

这样,可行域也是仿射的。于是可行解 xx 的最优性条件为:对任意满足 Ay=bAy = byy

f0(x)(yx)0 \nabla f_0(x)^{\top}(y-x) \geqslant 0

都成立。由于 xx 是可行的,每个可行的 yy 都可以表示成直线参数方程的形式 y=x+vy=x+v,其中 vN(A)v \in \mathcal{N}(A)。因此,上式可以转化为

vN(A),f0(x)v0 \forall v \in \mathcal{N}(A), \quad \nabla f_0(x)^{\top}v \geqslant 0

如果一个线性函数在其子空间上非负,则它在子空间上必恒等于零。因此,vN(A)\forall v \in \mathcal{N}(A),有 f0(x)v=0\nabla f_0(x)^{\top}v = 0,即

f0(x)N(A) \nabla f_0(x) \bot \mathcal{N}(A)

利用导出正交分解的性质

N(A)=R(A) \mathcal{N}(A) = \mathcal{R}(A^{\top})^{\bot}

可以将只含等式约束的凸优化问题表示为 f0(x)R(A)\nabla f_0(x) \in \mathcal{R}(A^{\top}),即存在 vRpv \in \mathbf{R}^p,使得

f0(x)+Av=0 \nabla f_0(x) + A^{\top}v = 0

同时考虑 Ax=bAx = b 要求(即要求 xx 可行),这是经典的 Lagrange 乘子最优性条件。

非负象限中的极小化

minimizef0(x)subject tox0 \begin{aligned} \mathrm{minimize} \quad & f_0(x) \\ \mathrm{subject\ to} \quad & x \succeq 0 \end{aligned}

其最优性条件可以表示为

{x0f0(x)0xi(f0(x))i=0,i=1,,n \begin{cases} \quad x \succeq 0 \\ \quad \nabla f_0(x)\succeq 0 \\ \quad x_i(\nabla f_0(x))_i = 0, \quad i=1,\cdots,n \end{cases}

等价的凸问题

在上一小节中,我们讨论了等价问题,意在说明经过一些变换之后问题等价。实际上,有一些变换不仅可以保证问题前后等价,还可以保持凸性。

消除等式约束

由于凸优化问题的等式约束都是线性等式 Ax=bAx=b,我们可以将之转化为非齐次线性方程组 Ax=bAx=b 的一个特解 x0x_0 和域为 AA 的零空间的矩阵 FF 来消除这些等式约束,从而得到关于 zz 的问题

minimizef0(Fz+x0)subject tofi(Fz+x0)0 \begin{aligned} \mathrm{minimize} \quad & f_0(Fz+x_0) \\ \mathrm{subject\ to} \quad & f_i(Fz+x_0) \preceq 0 \end{aligned}

引入等式约束

如果目标函数或约束函数具有 fi(Aix+bi)f_i(A_ix+b_i) 的形式,其中 AiRki×nA_i \in \mathbf{R}^{k_i \times n}。我们可以引入新的变量 yiRkiy_i \in \mathbf{R}^{k_i},用 fi(yi)f_i(y_i) 替换 fi(Aix+bi)f_i(A_ix+b_i) 并添加线性等式约束 yi=Aix+biy_i=A_ix+b_i

松弛变量

由于凸优化问题中的等式约束必须是仿射的,所以 fif_i 需为仿射的。换而言之,为线性不等式引入松弛变量保持问题的凸性不变。

上镜图问题形式

minimizetsubject tof0(x)t0fi(x)0,i=1,,maix=bi,i=1,,p \begin{aligned} \mathrm{minimize} \quad & t \\ \mathrm{subject\ to} \quad & f_0(x) - t \leqslant 0 \\ \quad & f_i(x) \leqslant 0, \quad i=1,\cdots,m \\ \quad & a_i^{\top}x=b_i, \quad i=1,\cdots,p \end{aligned}

拟凸优化

minimizef0(x)subject tofi(x)0,i=1,,mAx=b \begin{aligned} \mathrm{minimize} \quad & f_0(x) \\ \mathrm{subject\ to} \quad & f_i(x) \leqslant 0, \quad i = 1, \cdots, m \\ & A^{\top}x = b \end{aligned}

其中不等式约束函数 f1,,fmf_1,\cdots,f_m 是凸的,而目标函数 f0f_0 是拟凸的。拟凸约束函数可以等价的替换为凸约束函数,即具有相同的 0- 下水平集的凸函数。

这里探讨凸优化和拟凸优化本质上的不同,同时也将说明拟凸优化问题可以归结为求解一系列凸优化问题。

局部最优解与最优性条件

凸优化和拟凸优化之间最重要的区别在于,拟凸优化问题可以有非全局最优解。

如图所示的拟凸函数在 xx 是局部最优解,但却不是全局最优解。这个例子说明了在凸函数中的最优性条件 f(x)=0f^{\prime}(x)=0 对拟凸函数并不成立,它仅仅是一个充分条件。

通过凸可行性问题求解拟凸优化问题

可以通过一族凸不等式来表示拟凸函数的下水平集,这是解决拟凸优化问题的一般方法。令 ϕt:RnR\phi_t: \mathbf{R}^n \rightarrow \mathbf{R}tRt \in \mathbf{R} 为满足

f0(x)tϕt(x)0 f_0(x) \leqslant t \Longleftrightarrow \phi_t(x) \leqslant 0

的一族非增凸函数。用 pp^{\star} 表示拟凸优化问题的最优值。如果可行性问题

findxsubject toϕt(x)0fi(x)0,i=1,,mAx=b \begin{aligned} \mathrm{find} \quad & x \\ \mathrm{subject\ to} \quad & \phi_t(x) \leqslant 0 \\ \quad & f_i(x) \leqslant 0, \quad i=1,\cdots,m \\ \quad & Ax=b \end{aligned}

是可行的,我们有 ptp^{\star} \leqslant t。反之,如果不可行,那么 ptp^{\star} \geqslant t

按照上面的性质,我们可以得到一个解决拟凸优化问题的一个简单算法:使用二分法并在每步中求解凸可行性问题。我们设问题可行,并从已知包含最优解 pp^{\star} 的区间 [l,u][l, u] 开始求解。然后在中点 t=(l+u)/2t = (l+u)/2 求解凸可行性问题,判断最优解是在区间的上半或下半部分,并据此更新区间。重复上述过程直到区间宽度足够小。