new post cvx-1.6, update cvx series

This commit is contained in:
2024-06-13 22:39:02 +08:00
parent ade0322aa9
commit 565bdaaefd
12 changed files with 308 additions and 94 deletions
+39 -21
View File
@@ -41,7 +41,7 @@ $$
y = \theta x_1 + (1-\theta)x_2,\theta \in \bfR
$$
组成一条穿过 $x_1$ 和 $x_2$ 的**直线**(*line*)。参数 $\theta = 0$ 和 $\theta = 1$ 分别对应 $y=x_2$ 和 $y = x_1$。参数 $\theta$ 的值在 0 和 1 之间变动,构成了 $x_1$ 和 $x_2$ 之间的(闭)线段((closed) *line segment*)。
组成一条穿过 $x_1$ 和 $x_2$ 的**直线**(*line*)。参数 $\theta = 0$ 和 $\theta = 1$ 分别对应 $y=x_2$ 和 $y = x_1$。参数 $\theta$ 的值在 0 和 1 之间变动,构成了 $x_1$ 和 $x_2$ 之间的(闭)**线段**((closed) *line segment*)。
  另一种 $y$ 的表示形式
@@ -49,11 +49,11 @@ $$
y = x_2 + \theta (x_1 - x_2)
$$
可以解释为:$y$ 是**基点**(*base point*)$x_2$(对应 $\theta = 0$)和**方向**(*direction*)$x_1 - x_2$(由 $x_2$ 指向 $x_1$)乘以参数 $\theta$ 的和。因此,$\theta$ 给出了 $y$ 在由 $x_2$ 通向 $x_1$ 的路上的位置。当 $\theta$ 由 $0$ 增加到 $1$, 点 $y$ 相应地由 $x_2$ 移动到 $x_1$。如果 $\theta > 1$,点 $y$ 在超越了 $x_1$ 的直线上。[图 1](#图1) 给出了直观的解释。
可以解释为:$y$ 是**基点**(*base point*)$x_2$(对应 $\theta = 0$)和**方向**(*direction*)$x_1 - x_2$(由 $x_2$ 指向 $x_1$)乘以参数 $\theta$ 的和。因此,$\theta$ 给出了 $y$ 在由 $x_2$ 通向 $x_1$ 的路上的位置。当 $\theta$ 由 $0$ 增加到 $1$,点 $y$ 相应地由 $x_2$ 移动到 $x_1$。如果 $\theta > 1$,点 $y$ 在超越了 $x_1$ 的直线上。[图 1](#图1) 给出了直观的解释。
<a id="图1"></a>
![图 1. 通过 $x_1$ 和 $x_2$ 的直线可以参数化描述为 $\theta x_1 + (1-\theta)x_2$, 其中 $\theta$ 在 $\bfR$ 上变化。$x_1$ 和 $x_2$ 之间的线段由深色所示,对应处于 $0$ 和 $1$ 之间的 $\theta$。](../images/post/2022-03-29-josh-cvx-1-1/2022-03-29-josh-cvx-1-1-010-TheLinePassingThroughX1AndX2.png){width=600px}
![图 1. 通过 $x_1$ 和 $x_2$ 的直线可以参数化描述为 $\theta x_1 + (1-\theta)x_2$,其中 $\theta$ 在 $\bfR$ 上变化。$x_1$ 和 $x_2$ 之间的线段由深色所示,对应处于 $0$ 和 $1$ 之间的 $\theta$。](../images/post/2022-03-29-josh-cvx-1-1/2022-03-29-josh-cvx-1-1-010-TheLinePassingThroughX1AndX2.png){width=600px}
<!-- more -->
@@ -66,7 +66,7 @@ $$
&emsp;&emsp;如果 $C$ 是一个仿射集合并且 $x_0 \in C$,则集合
$$
V = C - x_0 = \left\{ x - x_0\ \middle|\ x \in C \right\}
V = C - x_0 = \left\{ x - x_0\mid x \in C \right\}
$$
是一个子空间,即关于加法和数乘是封闭的。
@@ -82,12 +82,12 @@ $$
&emsp;&emsp;因此,仿射集合 $C$ 可以表示为
$$
C = V + x_0 = \left\{ v + x_0\ \middle|\ v \in V \right\}
C = V + x_0 = \left\{ v + x_0\mid v \in V \right\}
$$
即一个子空间加上一个偏移。与仿射集合 $C$ 相关联的子空间 $V$ 与 $x_0$ 的选取无关,所以 $x_0$ 可以是 $C$ 中的任意一点。定义仿射集合 $C$ 的维数为子空间 $V = C - x_0$ 的维数,其中 $x_0$ 是 $C$ 中的任意元素。
> **举例**&emsp;**线性方程组的解集**。线性方程组的解集 $C = \{x\ |\ Ax= b\}$,其中 $A\in\bfR^{m\times n}$,$b \in \bfR^{m}$ 是一个仿射集合。为说明这点,设 $x_1,x_2\in C$,即 $Ax_1 = b, Ax_2 = b$。则对于任意 $\theta$,有
> **举例**&emsp;**线性方程组的解集**。线性方程组的解集 $C = \{x\mid Ax= b\}$ 是一个仿射集合,其中 $A\in\bfR^{m\times n}$,$b \in \bfR^{m}$ 。为说明这点,设 $x_1,x_2\in C$,即 $Ax_1 = b, Ax_2 = b$。则对于任意 $\theta$,有
>
> $$\begin{aligned}
> A(\theta x_1 + (1-\theta)x_2) &= \theta Ax_1 + (1-\theta)Ax_2 \\
@@ -97,12 +97,12 @@ $$
>
> 这表明任意的仿射组合 $\theta x_1 + (1-\theta)x_2$ 也在 $C$ 中,并且与仿射集合 $C$ 相关联的子空间就是 $A$ 的零空间。
>
> 反之任意仿射集合可以表示为一个线性方程组的解集。
> 反之,任意仿射集合可以表示为一个线性方程组的解集。
&emsp;&emsp;由集合 $C \subseteq \bfR^n$ 中的点的所有仿射组合组成的集合称为 $C$ 的**仿射包**(*affine hull*),记为 $\aff{C}$:
$$
\aff{C} = \left\{ \theta_1 x_1 + \cdots + \theta_k x_k\ \middle|\ x_1, \cdots, x_k \in C, \theta_1 + \cdots + \theta_k = 1 \right\}
\aff{C} = \left\{ \theta_1 x_1 + \cdots + \theta_k x_k\mid x_1, \cdots, x_k \in C, \theta_1 + \cdots + \theta_k = 1 \right\}
$$
仿射包是包含 $C$ 的最小的仿射集合,也就是说:如果 $S$ 是满足 $C \subseteq S$ 的仿射集合,那么 $\aff{C} \subseteq S$。
@@ -111,32 +111,38 @@ $$
&emsp;&emsp;集合 $C$ 的仿射维数定义为其仿射包的维数。仿射维数在凸分析及凸优化中十分有用,但它与其他维数的定义常常不相容。
> **举例**&emsp;考虑 $\bfR^2$ 上的单位圆环 $\left\{x\in\bfR^2\ \middle|\ x_1^2 + x_2^2 = 1 \right\}$。它的仿射包是全空间 $\bfR^2$,所以其仿射维数为 $2$。但是,在其他大多数维数的定义下,$\bfR^2$ 上的单位圆环的维数为 $1$。
> **举例**&emsp;考虑 $\bfR^2$ 上的单位圆环 $\left\{x\in\bfR^2\mid x_1^2 + x_2^2 = 1 \right\}$。它的仿射包是全空间 $\bfR^2$,所以其仿射维数为 $2$。但是,在其他大多数维数的定义下,$\bfR^2$ 上的单位圆环的维数为 $1$。
&emsp;&emsp;如果集合 $C \subseteq \bfR^n$ 的仿射维数小于 $n$,那么这个集合在仿射集合 $\aff C \ne \bfR^n$ 中。定义集合 $C$ 的**相对内部**(*relative interior*)为 $\aff C$ 的内部,记为 $\relint C$,即
$$
\relint C = \left\{ x \in C\ \middle|\ B(x,r) \cap \aff C \subseteq C\ 对于某些\ r > 0 \right\}
\relint C = \left\{ x \in C\mid B(x,r) \cap \aff C \subseteq C\ 对于某些\ r > 0 \right\}
$$
其中 $B(x,r) = \left\{ y\ \middle|\ \left\| y-x \right\| \leqslant r \right\}$,即半径为 $r$,中心为 $x$ 并由范数 $\| \cdot \|$ 定义的球(这里的 $\| \cdot \|$ 可以是任意范数,并且所有范数定义了相同的相对内部)。于是可以定义集合 C 的**相对边界**(*relative boundary*)为 $\cl C\ \backslash \relint C$,此处 $\cl C$ 表示 $C$ 的闭包。
其中 $B(x,r) = \left\{ y\mid \left\| y-x \right\| \leqslant r \right\}$,即半径为 $r$,中心为 $x$ 并由范数 $\| \cdot \|$ 定义的球(这里的 $\| \cdot \|$ 可以是任意范数,并且所有范数定义了相同的相对内部)。于是可以定义集合 $C$ 的**相对边界**(*relative boundary*)为 $\cl C\ \setminus \relint C$,此处 $\cl C$ 表示 $C$ 的闭包。
{% note info %}
这里的 “$\setminus$” 表示“集合减”,也即集合 $C$ 的相对边界为其闭包 $\mathbf{cl}\ C$ 减去其相对内部 $\mathbf{relint}\ C$。
{% endnote %}
> **举例**&emsp;考虑 $\bfR^3$ 中处于 $(x_1,x_2)$ 平面的一个正方形,定义
>
> $$
> C = \{x \in \bfR \ |\ -1\leqslant 1, -1\leqslant x_2\leqslant 1, x_3 = 0\}
> C = \{x \in \bfR \mid -1\leqslant 1, -1\leqslant x_2\leqslant 1, x_3 = 0\}
> $$
>
> 其仿射包为 $(x_1,x_2)$-平面,即 $\aff C = \{x\in\bfR^3\ |\ x_3 = 0 \}$。$C$ 的内部为空,但其相对内部为
> 其仿射包为 $(x_1,x_2)$-平面,即 $\aff C = \{x\in\bfR^3\mid x_3 = 0 \}$。$C$ 的内部为空,但其相对内部为
>
> $$
> \relint C = \{x\in\bfR^3\ |\ -1<x_1<1,-1<x_2<1,x_3 = 0\}
> \relint C = \{x\in\bfR^3\mid -1<x_1<1,-1<x_2<1,x_3 = 0\}
> $$
>
> $C$(在 $\bfR^3$ 中)的边界是其自身,而相对边界是其边框,
>
> $$
> \{x \in \bfR^3\ |\ \max\{|x_1|,|x_2|\} = 1,x_3 = 0\}
> \{x \in \bfR^3\mid \max\{|x_1|,|x_2|\} = 1,x_3 = 0\}
> $$
# 4. 凸集
@@ -156,7 +162,7 @@ $$
&emsp;&emsp;集合 $C$ 中所有点的凸组合的集合称为集合 $C$ 的**凸包**(*convex hull*),记为 $\conv C$:
$$
\conv C = \left\{ \theta_1 x_1 + \cdots + \theta_k x_k\ \middle|\ x_i \in C, \theta_i \geqslant 0, i = 1,\cdots, k, \theta_1 + \cdots + \theta_k = 1 \right\}
\conv C = \left\{ \theta_1 x_1 + \cdots + \theta_k x_k\mid x_i \in C, \theta_i \geqslant 0, i = 1,\cdots, k, \theta_1 + \cdots + \theta_k = 1 \right\}
$$
顾名思义,凸包 $\conv C$ 总是凸的。它是包含 $C$ 的最小的凸集。也就是说,如果 $B$ 是包含 $C$ 的凸集,那么 $\conv C \subseteq B$。[图 3](#图3) 展示了凸包的定义。
@@ -165,19 +171,25 @@ $$
![图 3. $\bfR^2$ 上两个集合的凸包。**左**:(如图所示的)十五个点的集合的凸包是一个五边形示)。**右**:[图 2](#图2) 中的肾形集合的凸包是阴影所示的集合。](../images/post/2022-03-29-josh-cvx-1-1/2022-03-29-josh-cvx-1-1-030-TheConvexHullsOfTwoSets.png){width=800px}
{% note info %}
集合 $C$ 的仿射包 $\mathbf{aff}\ C$ 和凸包 $\mathbf{Conv}\ C$ 的区别是参数 $\theta$ 的定义域。可以看出,仿射包 $\mathbf{aff}\ C$ 包含凸包 $\mathbf{Conv}\ C$,因此集合 $C$ 的仿射包是凸集。
{% endnote %}
&emsp;&emsp;凸组合的概念可以扩展到无穷级数、积分以及大多数形式的概率分布。假设 $\theta_1,\theta_2,\cdots$ 满足
$$
\theta_i \geqslant 0, \quad i = 1,2,\cdots,\quad \sum_{i=1}^\infty \theta_i = 1
$$
并且 $x_1, x_2, \cdots \in C$, 其中 $C \subseteq \bfR^n$ 为凸集。那么,如果下面的级数收敛,则有
并且 $x_1, x_2, \cdots \in C$,其中 $C \subseteq \bfR^n$ 为凸集。那么,如果下面的级数收敛,则有
$$
\sum_{i=1}^\infty \theta_i x_i \in C
$$
更一般地,假设 $p:\bfR^n\to\bfR$ 对所有 $x \in C$ 满足 $p(x) \geqslant 0$,并且 $\displaystyle \int_C p(x) \dd x$, 其中 $C \subseteq \bfR^n$ 是凸集。那么,如果下面的积分存在,则有
更一般地,假设 $p:\bfR^n\to\bfR$ 对所有 $x \in C$ 满足 $p(x) \geqslant 0$,并且 $\displaystyle \int_C p(x) \dd x = 1$,其中 $C \subseteq \bfR^n$ 是凸集。那么,如果下面的积分存在,则有
$$
\int_C p(x)x \dd x \in C
@@ -187,7 +199,7 @@ $$
# 5. 锥
&emsp;&emsp;如果对于任意 $x \in C$ 和 $\theta \geqslant 0$ 都有 $\theta x \in C$,我们称集合 $C$ 是**锥**(*cone*)或者**非负齐次**(*nonnegative homogeneous*)。如果集合 $C$ 是锥,并且是凸的,则称 $C$ 为**凸锥**(*convex cone*),即对于任意 $x_1, x_2 \in C$ 和 $\theta_1, \theta_2 \geqslant 0$, 都有
&emsp;&emsp;如果对于任意 $x \in C$ 和 $\theta \geqslant 0$ 都有 $\theta x \in C$,我们称集合 $C$ 是**锥**(*cone*)或者**非负齐次**(*nonnegative homogeneous*)。如果集合 $C$ 是锥,并且是凸的,则称 $C$ 为**凸锥**(*convex cone*),即对于任意 $x_1, x_2 \in C$ 和 $\theta_1, \theta_2 \geqslant 0$,都有
$$
\theta_1 x_1 + \theta_2 x_2 \in C
@@ -199,12 +211,12 @@ $$
![图 4. 扇形展示了所有具有形式 $\theta_1 x_1 + \theta_2 x_2$ 的点,其中 $\theta_1, \theta_2 \geqslant 0$。扇形的顶点 ($\theta_1 = \theta_2 = 0$) 在 $0$;其边界(对应于 $$\theta_1 = 0$ 或 $\theta_2 = 0$) 穿过点 $x_1$ 和 $x_2$。](../images/post/2022-03-29-josh-cvx-1-1/2022-03-29-josh-cvx-1-1-040-ThePieSlice.png){width=400px}
&emsp;&emsp;具有 $\theta_1 x_1 + \cdots + \theta_k x_k, \theta_1,\cdots,\theta_k$ 形式的点称为 $x_1,\cdots,x_k$ 的**锥组合**(*conic combination*)(或**非负线性组合**(*nonnegative linear combination*))。如果 $x_i$ 均属于凸锥 $C$,那么,$x_i$ 的每一个锥组合也在 $C$ 中。反言之,集合 $C$ 是凸锥的充要条件是它包含其元素的所有锥组合。如同凸(或仿射)组合一样,锥组合的概念可以扩展到无穷级数和积分中。
&emsp;&emsp;具有 $\theta_1 x_1 + \cdots + \theta_k x_k, \theta_1,\cdots,\theta_k \geqslant 0$ 形式的点称为 $x_1,\cdots,x_k$ 的**锥组合**(*conic combination*)(或**非负线性组合**(*nonnegative linear combination*))。如果 $x_i$ 均属于凸锥 $C$,那么,$x_i$ 的每一个锥组合也在 $C$ 中。反言之,集合 $C$ 是凸锥的充要条件是它包含其元素的所有锥组合。如同凸(或仿射)组合一样,锥组合的概念可以扩展到无穷级数和积分中。
&emsp;&emsp;集合 $C$ 的**锥包**(*conic hull*)是 $C$ 中元素的所有锥组合的集合,即
$$
\left\{ \theta_1 x_1 + \cdots + \theta_k x_k\ \middle|\ x_i \in C, \theta_i \geqslant 0, i = 1,\cdots,k \right\}
\left\{ \theta_1 x_1 + \cdots + \theta_k x_k\mid x_i \in C, \theta_i \geqslant 0, i = 1,\cdots,k \right\}
$$
它是包含 $C$ 的最小的凸锥(如[图 5](#图5) 所示)。
@@ -213,6 +225,12 @@ $$
![图 5. [图 3](#图3) 中两个集合的锥包(阴影所示)。](../images/post/2022-03-29-josh-cvx-1-1/2022-03-29-josh-cvx-1-1-050-TheConicHulls.png){width=600px}
{% note info %}
类似仿射包,集合 $C$ 的凸包 $\mathbf{Conv}\ C$ 和锥包的区别是参数 $\theta$ 的定义域。可以看出,锥包包含凸包 $\mathbf{Conv}\ C$,因此集合 $C$ 的锥包是凸集。
{% endnote %}
# 参考文献
1. Stephen P. Boyd and Lieven Vandenberghe, *Convex optimization*. Cambridge, UK: Cambridge University Press, 2004.