Files
josh-blog-source/source/_posts/2024-06-08-josh-cvx-1-3.md
T
2024-06-11 20:10:20 +08:00

9.9 KiB
Raw Blame History

title, mathjax, comments, copyright, toc, categories, tags, abbrlink, date
title mathjax comments copyright toc categories tags abbrlink date
Josh's Note — 凸优化<br>Part 1.3 凸集—保凸运算 true true true
enable number wrap expand_all max_depth
true false true true 4
Josh 的学习笔记
凸优化
凸集
数学
凸优化
凸优化
凸集
a4a69a4f 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 凸集—一些重要的凸集中描述的凸集的简单例子一起构成了凸集的演算,可以用来确定或构建集合的凸性。

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 和图 14。

图 13. \eqref{example2.8} 定义的集合 (m=2) 中的点的三角多项式。虚线所示的三角多项式是另外两个的平均。{width=500px}

图 14. 图中央的白色区域显示了 m=2 情况下 \eqref{example2.8} 定义的集合 $S$。这个集合是无限多个(图中显示了其中 20 个)平板的交集,所以是凸的。{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.透视函数的小孔成象解释。深色的水平直线表示 \bfR^3 中的平面 $x_3 = 0$,除了在原点处有一个小孔外,它是不透光的。平面之上的物体或光源呈现在浅色水平直线所示的象平面 x_3 = -1 上。源位置向其象位置的映射对应于透视函数。{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.