凸集
仿射
仿射集(Affine Sets)
等价定义1: 若对集合C中的任意两点x1, x2,都有过x1, x2的直线也在C中,则称C为仿射集 即: ∀x1, x2 ∈ C, ∀θ ∈ R ⇒ y = θx1 + (1 − θ)x2 ∈ C.
等价定义2:设 x1, …, xk ∈ C, ∀θ1, …, θk ∈ R,且$\sum_{i=1}^k\theta_i=1$,有$\sum_{i=1}^k\theta_kx_k\in C$,则称C 为 仿射集.
例如:直线是仿射集,全空间是仿射集,线段不是仿射集。线性方程组的解C x|Ax = b是仿射集,且齐次线性方程组的解V {x|Ax = 0}满足更好的性质,即 ∀x, y ∈ V, α, β ∈ R,有 αx + βy ∈ V,而不必要求 α + β = 1 通常称V是C的仿射子空间
仿射组合
仿射组合:设x1, …, xk ∈ C, θ1, …, θk ∈ R, θ1 + ⋯ + θk = 1, θ1x1 + ⋯ + θkxk称为仿射组合 ⇒若 C 为仿射集,则仿射组合也在 C 内,证明如下 $$\begin{aligned}&\frac{\theta_{1}}{\theta_{1}+\theta_{2}}x_{1}+\frac{\theta_{2}}{\theta_{1}+\theta_{2}}x_{2}\in C\\&(\theta_{1}+\theta_{2})\left(\frac{\theta_{1}}{\theta_{1}+\theta_{2}}x_{1}+\frac{\theta_{2}}{\theta_{1}+\theta_{2}}x_{2}\right)+(1-\theta_{1}-\theta_{2})x_{3}\in C\\&\Leftrightarrow\theta_{1}x_{1}+\theta_{2}x_{2}+\theta_{3}x_{3}\in C,\quad\theta_{1}+\theta_{2}+\theta_{3}=1\end{aligned}$$ 按照此思路可以递归的证明到多个点进行仿射组合的情况
仿射包
对于任意集合C,仿射包aff C是包含C的最小仿射集,
aff C = {θ1x1 + … + θkxk|∀x1, …, xk ∈ C, θ1 + … + θk = 1}
不管集合C是什么, aff C都一定是仿射集, 且是所有包含C的仿射集中最小的仿射集.也就是说我们可以从任意集合中构造一个特殊的仿射集。 举个例子
{x1, x2}的仿射包是连接两点的直线,{x1, x2, x3}的仿射包是R2
凸
凸集
一个集合C为凸集,当且仅当任意连接C内两点的线段也在C内,即 ∀x1, x2 ∈ C, ∀θ ∈ [0, 1], θx1 + (1 − θ)x2 ∈ C 等价定义为C中任意多个元素的凸组合也在C内
凸组合
x1, …, xk ∈ C,
θ1, …, θk ∈ [0, 1],
θ1 + ⋯ + θk = 1,
θ1x1 + ⋯ + θkxk
凸集包含其任意元素的凸组合
凸包
对任意集合C,包含C的最小凸集称为C的凸包
Conv(C) = {θ1x1 + ⋯ + θkxk|x1, …, xk ∈ C,
θ1, …, θk ∈ [0, 1],
θ1 + ⋯ + θk = 1}
锥
椎:∀x ∈ C, θ ≥ 0 ⇒ θx ∈ C
凸锥∀x1, x2 ∈ C, θ1, θ2 ≥ 0 ⇒ θ1x1 + θ2x2 ∈ C
凸锥组合:θ1x1 + ⋯ + θkxk, θ1, …, θk ≥ 0
凸锥包:{θ1x1 + ⋯ + θkxk|x1, …, xk ∈ C, θ1, …, θk ≥ 0}
总结
设 x1, …, xk ∈ C, ∀θ1, …, θk ∈ C,在下表对应的情况下,
$$\begin{array}{|c|c|c|}\hline\text{仿射集}&\text{凸集}&\text{凸锥}\\\hline\theta_1+\cdots+\theta_k=1&\theta_1+\cdots+\theta_k=1\\\theta_1,\ldots,\theta_k\in R&\theta_1,\ldots,\theta_k\in[0,1]&\theta_1,\ldots,\theta_k\geq0\\\hline\end{array}$$
有$\sum_{i=1}^k\theta_kx_k\in C$,则C为仿射集/凸集/凸锥。
凸集举例
Rn空间,Rn空间的子空间
任意直线(若过原点也为凸锥),任意线段,射线{x0 + θv|θ ≥ 0, x ∈ Rn, θ ∈ R, v ∈ Rn}
超平面与半空间
球和椭球
多面体(Polyhedron)和单纯形(Simplex)
对称矩阵集合,对称半正定矩阵集合,对称正定矩阵集合
超平面
- 超平面(hyperplane){x ∣ aTx = b}为平面在高维空间中的扩展 ,它是凸集,是仿射集,若否过原点则是凸锥
- 半空间(halfspace)aTx ≥ b或aTx ≤ b为由超平面分开的全空间的一半,它是凸集,非仿射集,若过原点则是凸锥
球
$B(x_{c},r)=\{x\mid\|x-x_{c}\|_{2}\leq
r\}=\{x\mid\sqrt{(x-x_{c})^{T}(x-x_{c})}\leq r\}$是凸集
证:
$$\begin{aligned}&\forall\theta\in[0,1]\text{,取
}f(x)=\|x-x_c\|_2\\&\|\theta
x_1+(1-\theta)x_2-x_c\|_2=\|\theta(x_1-x_c)+(1-\theta)(x_2-x_c)\|_2\\&\leq
\theta\|x_{1}-x_{c}\|_{2}+(1-\theta)\|x_{2}-x_{c}\|_{2}\end{aligned}$$
椭球
ε(xc, P) = {x ∣ (x − xc)TP−1(x − xc) ≤ 1}, xc ∈ Rn, P ∈ S++n 其中P为对角矩阵,对角线上为矩阵的奇异值的平方,矩阵的奇异值对应了椭球的半轴长
多面体
多面体(polyhedron)是半空间与超平面的交集,为凸集。 {x ∣ ajTx ≤ bj, j = 1, …, m, cjTx = dj, j = 1, …, p} 当然多个条件也可以一起排列写成矩阵的形式,简单来说只有若干个线性不等式和等式的约束代表的凸集即是多面体,注意多面体不一定封闭。
单纯形
在ℝn空间中选择k + 1个仿射无关的点v0, v1, …, vk,(也就是满足v1 − v0, v2 − v0, …, vk − v0线性无关),我们称点v1, …vk的凸包为单纯形 C = conv{v1, …, vk} = {θTv|θ ≥ 0, ∑iθi = 1} 例如,在ℝn 空间中,由两个点构造的凸包(线段)与三个点组成凸包(三角形)算是单纯形。但是四个点组成的凸包不是单纯形,因为在二维空间ℝn 中,四个点无法仿射独立。如下图
求证:单纯形是多面体的一种
定义
y = [θ1, …, θk], y ≥ 0, 1Ty ≤ 1(因为y中舍弃了θ0)
B = [v1 − v0, …, vk − v0] ∈ Rn × k
则单纯形中的点x = θ0v0 + ⋯ + θkvk可以写为
x = θ0v0 + ⋯ + θkvk = v0 + θ1(v1 − v0) + ⋯ + θk(vk − v0) = v0 + By (1)
由于B是列满秩的,也即rank(B) = k,也就是说我们总能通过初等行变换把B变为$B=\left[\begin{array}{c}{ {I_{k} }
}\\{0}\end{array}\right]$
用数学的语言描述,我们总能找到可逆矩阵A,使得 $$A=\left[\begin{array}{c}{A_{1} }\\{}\\{A_{2}
}\end{array}\right]\in R^{n\times n}, \left[\begin{array}{c}{A_{1}
}\\{}\\{A_{2} }\end{array}\right]B=\left[\begin{array}{c}{I_{k}
}\\{0}\end{array}\right]$$ 1式两边左乘A $$\left.Ax=Av_0+ABy\Rightarrow\left[\begin{array}{c}A_1\\\\A_2\end{array}\right.\right]x=\left[\begin{array}{c}A_1\\\\A_2\end{array}\right]v_0+\left[\begin{array}{c}I_k\\\\0\end{array}\right]y$$
利用y ≥ 0, 1Ty ≤ 1,有A1x ≥ A1v0,
1TA1x ≤ 1TAv0 + 1
则单纯形中的 x 可以表示为{x ∣ A1x ≥ A1v0,
1TA1x ≤ 1TAv0 + 1, A2x = A2v0}
一些矩阵
- 对称矩阵集合:Sn = {x ∈ Rn × n ∣ X = XT}
- 半正定矩阵集合:S+n = {x ∈ Rn × n ∣ X = XT, X ≽ 0}
- 正定矩阵集合:S++n = {x ∈ Rn × n ∣ X = XT, X ≻ 0}
保凸运算举例
任意多个凸集的交集
若S0为凸集,∀a ∈ A,则⋂a ∈ ASa为凸集
仿射函数
当f = Ax + b, A ∈ Rm × n, b ∈ Rm 若S ∈ Rn为凸,则f(S) = {f(x) ∣ x ∈ S}为凸,我们称f : Rn → Rm 是仿射的 (线性映射)
缩放和移位
αS = {αx ∣ x ∈ S} S + a = {x + a ∣ x ∈ S}
透视函数
透视函数(perspective function):P : Rn + 1 → Rn, domP : Rn × R++ $P( z, t) = \frac zt$, z ∈ Rn, t ∈ R++,凸集通过透视变换仍为凸集。
形象的理解P:一个n+1维向量保留前n维,同时除以被扔掉的n+1维得到新的向量
证明任意线段经过透视还是线段:
x = (x̃, xn + 1), y = (ỹ, yn + 1), x̃, ỹ ∈ Rn, xn + 1, yn + 1 ∈ R++, θ ≥ 0 $$\begin{aligned} \begin{aligned}P(\theta x+(1-\theta)y)\end{aligned}& \begin{aligned}=\frac{\theta\tilde{x}+(1-\theta)\tilde{y}}{\theta x_{n+1}+(1-\theta)y_{n+1}}\end{aligned} \\ &\begin{aligned}&=\frac{\theta x_{n+1}}{\theta x_{n+1}+(1-\theta)y_{n+1}}\frac{\tilde{x}}{x_{n+1}}+\frac{(1-\theta)y_{n+1}}{\theta x_{n+1}+(1-\theta)y_{n+1}}\frac{\tilde{y}}{y_{n+1}}\end{aligned} \\ &=\mu P(x)+(1-\mu)P(y) \end{aligned}$$
线性分数函数
A ∈ Rm × n, b ∈ Rm, C ∈ Rn, d ∈ R,线性分数函数定义为 $$\begin{aligned}f(x)=\frac{Ax+b}{cx+d}, domf=\{x\mid c^Tx+d>0\}\end{aligned}$$ 这可以看成是对x进行两次集合运算得到的结果,先进行仿射变换 $$\delta(x)=\left[\begin{array}{c}{A}\\{c^{T}}\\\end{array}\right]x+\left[\begin{array}{c}{b}\\{d}\\\end{array}\right]$$ 再进行透视变换P : Rm + 1 → Rm,因此两次保凸运算得到的结果依然是凸集
参考文献/blog
- https://www.bilibili.com/video/BV19M411T7S7?p=20&vd_source=84b977d2834d5eca6c0ca78bd619156f,中科大/凌青《凸优化》,chapter1-9
- 知乎专栏,https://www.zhihu.com/column/c_1492543238217478144
- 知乎专栏,https://zhuanlan.zhihu.com/c_1280779583399882752
- 《ConvexOptimizationnotes》,https://github.com/ZxyGed/ConvexOptimization,Convex_Sets pdf笔记