--- title: Josh's Note — 凸优化
Part 1.3 凸集—保凸运算 mathjax: true comments: true copyright: true toc: enable: true number: false wrap: true expand_all: true max_depth: 4 categories: - - Josh 的学习笔记 - 凸优化 - 凸集 - - 数学 - 凸优化 tags: - 凸优化 - 凸集 abbrlink: a4a69a4f date: 2024-06-08 23:27:19 --- $ \newcommand{\bfR}{\mathbf{R}} \newcommand{\bfS}{\mathbf{S}} \newcommand{\TT}{\mathrm{T}} \newcommand{\H}{\mathcal{H}} \newcommand{\E}{\mathcal{E}} \def\dom{\mathop{\bf dom}} $  本文将描述一些保凸运算,利用保凸运算可以使用凸集构造出其他凸集。这些运算与[*Part 1.2 凸集—一些重要的凸集*](https://josh-gao.top/posts/9293b739.html)中描述的凸集的简单例子一起构成了凸集的演算,可以用来确定或构建集合的凸性。 # 1. 交集   交集运算是保凸的:如果 $S_1$ 和 $S_2$ 是凸集,那么 $S_1 \cap S_2$ 也是凸集。这个性质可以扩展到无穷个集合的交:如果对于任意 $\alpha\in A$,$S_\alpha$ 都是凸的,那么 $\displaystyle \bigcap_{\alpha \in A} S_\alpha$ 也是凸集。(子空间、仿射集合和凸锥对与任意交运算也是封闭的。)举一个简单的例子,多面体是半空间和超平面(它们都是凸集)的交集,因而是凸的。 > **举例** 半正定锥 $\bfS^n_+$ 可以表示为 > > $$ > \bigcap_{z\ne 0} \left\{ X \in \bfS^n\ \middle|\ z^\TT Xz \geqslant 0 \right\} > $$ > > 对于任意 $z\ne 0$,$z^\TT Xz$ 是关于 $X$ 的(不恒等于零的)线性函数,因此集合 > > $$ > \left\{ X \in \bfS^n\ \middle|\ z^\TT Xz \geqslant 0 \right\} > $$ > > 实际上就是 $\bfS^n$ 的半空间。由此,半正定锥是无穷个半空间的交集,因此是凸的。 > **举例**  考虑集合 > > $$\begin{equation}\label{example2.8} > S = \left\{ x \in \bfR^m\ \middle|\ |p(t)|\leqslant 1\ 对于\ |t| \leqslant \pi/3 \right\} > \end{equation}$$ > > 其中 $p(t) = \displaystyle\sum_{k=1}^m x_k \cos kt$。集合 $S$ 可以表示为无穷个**平板**(*slab*)的交集:$S = \displaystyle \bigcap_{|t|\leqslant\pi/3} S_t$,其中 > > $$ > S_t = \left\{x\ \middle|\ -1\leqslant (\cos t,\cdots, \cos mt)^\TT x \leqslant 1\right\} > $$ > > 因此,$S$ 是凸的。对于 $m=2$ 的情况,它的定义和集合可见[图 13](#图13) 和[图 14](#图14)。 > > > > ![图 13. $\eqref{example2.8}$ 定义的集合 ($m=2$) 中的点的三角多项式。虚线所示的三角多项式是另外两个的平均。](../images/post/2024-06-08-josh-cvx-1-3/2024-06-08-josh-cvx-1-3-130-ThreeTrigonometricPolynomials.png){width=500px} > > > > ![图 14. 图中央的白色区域显示了 $m=2$ 情况下 $\eqref{example2.8}$ 定义的集合 $S$。这个集合是无限多个(图中显示了其中 20 个)平板的交集,所以是凸的。](../images/post/2024-06-08-josh-cvx-1-3/2024-06-08-josh-cvx-1-3-140-TheSetS.png){width=470px}   在上面这些例子中,我们通过将集合表示为(可能无穷多个)半空间的交集来表明集合的凸性。反过来我们也将看到:每一个闭的凸集 $S$ 是(通常为无限多个)半空间的交集。事实上,一个闭集 $S$ 是包含它的所有半空间的交集: $$ S = \bigcap \left\{ \H\ \middle|\ \H\ 是半空间,\ S\subseteq \H \right\} $$ # 2. 仿射函数   函数 $f: \bfR^n \to \bfR^m$ 是**仿射**(*affine*)的,如果它是一个线性函数和一个常数的和,即具有 $f(x) = Ax+ b$ 的形式,其中 $A \in \bfR^{m\times n}$,$b \in \bfR^m$。假设 $S \subseteq \bfR^n$ 是凸的,并且 $f: \bfR^n \to \bfR^m$ 是仿射函数。那么,$S$ 在 $f$ 下的象 $$ f(S) = \left\{ f(x)\ \middle|\ x\in S \right\} $$ 是凸的。类似地,如果 $f:\bfR^k\to\bfR^n$ 是仿射函数,那么 $S$ 在 $f$ 下的原象 $$ f^{-1}(S) = \left\{ x\ \middle|\ f(x)\in S \right\} $$ 是凸的。   两个简单的例子是**伸缩**(*scaling*)和**平移**(*translation*)。如果 $S \subseteq \bfR^n$ 是凸集,$\alpha \in \bfR$ 并且 $a \in \bfR^n$,那么,集合 $\alpha S$ 和 $S+a$ 是凸的,其中 $$ \alpha S = \left\{ \alpha x\ \middle|\ x \in S \right\},\qquad S + a = \left\{ x + a\ \middle|\ x \in S \right\} $$ 一个凸集向它的某几个坐标的**投影**(*projection*)是凸的,即:如果 $S \subseteq \bfR^m \times \bfR^n$ 是凸集,那么 $$ T = \left\{ x_1\in \bfR^m\ \middle|\ (x_1,x_2)\in S\ 对于某些\ x_2 \in \bfR^n \right\} $$ 是凸集。   两个集合的**和**(*sum*)可以定义为: $$ S_1 + S_2 = \left\{ x + y\ \middle|\ x \in S_1, y \in S_2\right\} $$ 如果 $S_1$ 和 $S_2$ 是凸集,那么,$S_1 + S_2$ 是凸的。可以看出,如果 $S_1$ 和 $S_2$ 是凸的,那么其直积或 Cartesian 乘积 $$ S_1 \times S_2 = \left\{ (x_1,x_2)\ \middle| \ x_1\in S_1, x_2\in S_2 \right\} $$ 也是凸集。这个集合在线性函数 $f(x_1,x_2) = x_1+x_2$ 下的象是和 $S_1 + S_2$。   也可以考虑 $S_1,S_2 \in \bfR^m \times \bfR^n$ 的**部分和**(*partial sum*),定义为 $$ S = \left\{ (x,y_1 + y_2)\ \middle| \ (x,y_1)\in S_1,\ (x,y_2)\in S_2 \right\} $$ 其中 $x\in\bfR^n$,$y_i \in \bfR^m$。$m=0$ 时,部分和给出了 $S_1$ 和 $S_2$的交集;$n=0$ 时,部分和等于集合之和。凸集的部分和是凸集。 > **举例** **多面体**。$\{ x\ |\ Ax \preceq b, Cx = d \}$ 可以表示为非负象限和原点的 Cartesian 乘积在仿射函数 $f(x) = (b -Ax, d - Cx)$ 下的原象: > > $$ > \{x\ |\ Ax\preceq b, Cx = d\} = \{ x\ |\ f(x) \in \bfR^m_+ \times \{0\}\} > $$ > **举例** **线性矩阵不等式的解**。条件 > > $$\begin{equation} > A(x) = x_1 A_1 + \cdots + x_nA_n \preceq B > \end{equation}$$ > > 称为关于 $x$ 的**线性矩阵不等式**(*Linear Matrix Inequality, LMI*),其中 $B,A_i \in \bfS^m$(注意它与有序线性不等式 > > $$ > a^\TT x = x_1a_1+\cdots x_na_n \leqslant b > $$ > > 的相似性,其中 $b,a_i\in \bfR$。) > > 线性矩阵不等式的解 $\{ x\ |\ A(x) \preceq B\}$ 是凸集。事实上,它是半正定锥在由 $f(x) = B-A(x)$ 给定的仿射映射 $f: \bfR^n \to \bfS^m$ 下的原象。 > **举例** **双曲锥**。集合 > > $$ > \{ x\ |\ x^\TT Px \leqslant (c^\TT x) ^2, c^\TT x \geqslant 0 \} > $$ > > 是凸集,其中 $P\in\bfS^n_+$,$c\in\bfR$ 这是因为它是二阶锥 > > $$ > \{ (z,t)\ |\ z^\TT z \leqslant t ^2 , t \geqslant 0 \} > $$ > > 在仿射函数 $f(x) = (P^{1/2}x,c^\TT x)$ 下的原象。 > **举例** **椭球**。椭球 > > $$ > \E = \{ x\ |\ (x-x_c)^\TT P^{-1} (x-x_c) \leqslant 1 \} > $$ > > 是单位 Euclid 球 $\{ u\ |\ \|u\|_2 \leqslant 1 \}$ 在仿射映射 $f(u) = P^{1/2}u + x_c$ 下的象, 其中 $P \in \bfS^n_{++}$。(同时也是单位球在仿射映射 $g(x) = P^{-1/2}(x — x_c)$ 下的原象。) # 3. 线性分式及透视函数   本节将讨论一类称为**线性分式**(*linear-fractional*)的函数,它比仿射函数更普遍,并且仍然保凸。 ## 3.1 透视函数   定义 $P:\bfR^{n+1}\to\bfR^n$ 为**透视函数**(*perspective function*),其定义域为 $\dom P = \bfR^n \times \bfR_{++}$。(此处的 $\bfR_{++}$ 表示正实数集合,即 $\bfR_{++} = \{ x\in\bfR\ |\ x > 0 \}$。)透视函数对向量进行伸缩(scale),或称为规范化(normalize),使得最后一维分量为1 并舍弃之。 > **注释** 我们用小孔成象来解释透视函数。($\bfR^3$ 中的)小孔照相机由一个不透明的水平面 $x_3 = 0$ 和一个在原点的小孔组成,光线通过这个小孔在 $x_3 = -1$ 呈现出一个水平图像。在相机上方 $x(x_3 > 0)$ 处的一个物体,在相平面的点 $=(x_1/x_3,x_2/x_3,1)$ 处形成一个图像。忽略象点的最后一维分量(因为它恒等于 $-1$),$x$ 处的点的象在象平面上呈现于 $y=-(x_1/x_3,x_2/x_3)$ 处。[图 15](#图15)显示了这个过程。 > > > > ![图 15.透视函数的小孔成象解释。深色的水平直线表示 $\bfR^3$ 中的平面 $x_3 = 0$,除了在原点处有一个小孔外,它是不透光的。平面之上的物体或光源呈现在浅色水平直线所示的象平面 $x_3 = -1$ 上。源位置向其象位置的映射对应于透视函数。](../images/post/2024-06-08-josh-cvx-1-3/2024-06-08-josh-cvx-1-3-150-PinHoleCameraInterpretationOfPerspectiveFuncation.png){width=500px}   如果 $C \subseteq \dom P$ 是凸集,那么它的象 $$ P(C) = \{ P(x)\ |\ x\in C \} $$ 也是凸集。这个结论很直观:通过小孔观察一个凸的物体,可以得到凸的象。为解释这个事实,我们将说明在透视函数作用下,线段将被映射成线段。(也可以这样理解,通过小孔,一条线段的象是一条线段。)假设 $x = (\tilde{x},x_{n+1}), y = (\tilde{y}, y_{n+1}) \in \bfR^{n+1}$,并且 $x_{n+1}>0, y_{n+1}>0$ 。那么,对于 $0 \leqslant \theta \leqslant 1$ $$ P(\theta x + (1-\theta)y) = \frac{\theta\tilde{x}+ (1-\theta)\tilde{y}}{\theta x_{n+1} + (1-\theta)y_{n+1}} = \mu P(x) + (1-\mu) P(x) $$ 其中 $$ \mu = \frac{\theta x_{n+1}}{\theta x_{n+1} + (1-\theta) y_{n+1}}\in[0,1] $$ $\theta$ 和 $\mu$ 之间的关系是单调的:当 $\theta$ 在 $0$、$1$ 间变化时(形成线段 $[x,y]$),$μ$ 也在 $0$、$1$ 间变化(形成线段 $[P(x),P(y)]$。这说明 $P([x,y]) = [P(x),P(y)]$。   现在假设 $C$ 是凸的,并且有 $C \subseteq \dom P$(即对于所有 $x\in C$,$x_{n+1} > 0$) 及 $x,y\in C$。为显示 $P(C)$ 的凸性,需要说明线段 $[P(x), P(y)]$ 在 $P(C)$ 中。这条线段是线段 $[x,y]$ 在 $P$ 的象,因而属于 $P(C)$。 # 参考文献 1. Stephen P. Boyd and Lieven Vandenberghe, *Convex optimization*. Cambridge, UK: Cambridge University Press, 2004. 2. Stephen P. Boyd and Lieven Vandenberghe, *凸优化*. 北京: 清华大学出版社, 2013.