凸优化笔记(一):凸集

仿射

仿射集(Affine Sets)

等价定义1: 若对集合\(C\)中的任意两点\(x_1,x_2\),都有过\(x_1,x_2\)的直线也在\(C\)中,则称\(C\)为仿射集
即:

\[\forall x_1,x_2\in C,\forall\theta\in R\Rightarrow y=\theta x_1+(1-\theta)x_2\in C. \]

等价定义2:设 \(x_1,\ldots,x_k\in C,\forall\theta_1,\ldots,\theta_k\in 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 \}\)满足更好的性质,即

\[\forall x,y\in V,\alpha,\beta\in R\text{,有 }\alpha x+\beta y\in V\text{,而不必要求 }\alpha+\beta=1 \]

通常称\(V\)\(C\)的仿射子空间

仿射组合

仿射组合:设\(x_1, \ldots , x_k\in C\), \(\theta _1, \ldots , \theta _k\in R, \theta _1+ \cdots + \theta _k= 1\), \(\theta _1x_1+ \cdots + \theta _kx_k\)称为仿射组合
\(\Rightarrow\)若 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=\{\theta_1x_1+\dots+\theta_kx_k|\forall x_1,\dots,x_k\in C,\theta_1+\dots+\theta_k=1\} \]

不管集合\(C\)是什么, \(aff \ C\)都一定是仿射集, 且是所有包含\(C\)的仿射集中最小的仿射集.也就是说我们可以从任意集合中构造一个特殊的仿射集。
举个例子

\(\{x_1,x_2 \}\)的仿射包是连接两点的直线,\(\{x_1,x_2,x_3 \}\)的仿射包是\(R^2\)

凸集

一个集合\(C\)为凸集,当且仅当任意连接\(C\)内两点的线段也在\(C\)内,即

\[\forall x_{1},x_{2}\in C, \forall\theta\in[0,1], \theta x_{1}+(1-\theta)x_{2}\in C \]

等价定义为\(C\)中任意多个元素的凸组合也在\(C\)

凸组合

\(x_1, \ldots , x_k\in C\), \(\theta _1, \ldots , \theta _k\in [ 0, 1]\), \(\theta _1+ \cdots + \theta _k= 1\), \(\theta _1x_1+ \cdots + \theta _kx_k\)
凸集包含其任意元素的凸组合

凸包

对任意集合\(C\),包含\(C\)的最小凸集称为C的凸包
\(Conv( C) = \{ \theta _{1}x_{1}+ \cdots + \theta _{k}x_{k}| x_{1}, \ldots , x_{k}\in C\), \(\theta _{1}, \ldots , \theta _{k}\in [ 0, 1]\), \(\theta _{1}+ \cdots + \theta _{k}= 1\}\)

  • 椎:\(\forall x\in C\), \(\theta \geq 0\Rightarrow \theta x\in C\)

  • 凸锥\(\forall x_1, x_{2}\in C\), \(\theta _{1}, \theta _{2}\geq 0\Rightarrow \theta _{1}x_{1}+ \theta _{2}x_{2}\in C\)

  • 凸锥组合:\(\theta _{1}x_{1}+ \cdots + \theta _{k}x_{k}\), \(\theta _{1}, \ldots , \theta _{k}\geq 0\)

  • 凸锥包:\(\{\theta_{1}x_{1}+\cdots+\theta_{k}x_{k}|x_{1},\ldots,x_{k}\in C,\theta_{1},\ldots,\theta_{k}\geq0\}\)

总结

\(x_1,\ldots,x_k\in C,\forall\theta_1,\ldots,\theta_k\in 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\)为仿射集/凸集/凸锥。

凸集举例

  • \(R^n\)空间,\(R^n\)空间的子空间

  • 任意直线(若过原点也为凸锥),任意线段,射线\(\{x_0+\theta v|\theta\geq0,x\in R^n,\theta\in R,v\in R^n\}\)

  • 超平面与半空间

  • 球和椭球

  • 多面体(Polyhedron)和单纯形(Simplex)

  • 对称矩阵集合,对称半正定矩阵集合,对称正定矩阵集合

超平面

  • 超平面(hyperplane)\(\{x\mid a^{T}x=b\}\)为平面在高维空间中的扩展 ,它是凸集,是仿射集,若否过原点则是凸锥
  • 半空间(halfspace)\({a^Tx\geq b\text{或}a^Tx\leq 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} \]

椭球

\[\varepsilon(x_{c},P)=\{x\mid(x-x_{c})^{T}P^{-1}(x-x_{c})\leq1\}, x_{c}\in R^{n}, P\in S_{++}^{n} \]

其中P为对角矩阵,对角线上为矩阵的奇异值的平方,矩阵的奇异值对应了椭球的半轴长

多面体

多面体(polyhedron)是半空间与超平面的交集,为凸集。

\[\{x\mid a_{j}^{T}x\leq b_{j}, j=1,\ldots,m, c_{j}^{T}x=d_{j}, j=1,\ldots,p\} \]

当然多个条件也可以一起排列写成矩阵的形式,简单来说只有若干个线性不等式和等式的约束代表的凸集即是多面体,注意多面体不一定封闭。

单纯形

\(\mathbb{R}^{n}\)空间中选择\(k+1\)个仿射无关的点\(v_0,v_1,\ldots,v_k ,\)(也就是满足\(v_1-v_0,v_2-v_0,\ldots,v_k-v_0\)线性无关),我们称点\(v_1,\ldots v_k\)的凸包为单纯形

\[C=conv\{v_1,\ldots,v_k\}=\{\theta^Tv|\theta\geq0,\sum_i\theta_i=1\} \]

例如,在\(\mathbb{R}^{n}\)
空间中,由两个点构造的凸包(线段)与三个点组成凸包(三角形)算是单纯形。但是四个点组成的凸包不是单纯形,因为在二维空间\(\mathbb{R}^{n}\)
中,四个点无法仿射独立。如下图

求证:单纯形是多面体的一种

定义

\[y=[\theta_{1},\ldots,\theta_{k}], y\geq0, 1^{T}y\leq1(因为y中舍弃了\theta_0) \]

\[B=[v_{1}-v_{0},\ldots,v_{k}-v_{0}]\in R^{n\times k} \]

则单纯形中的点\(x=\theta_{0}v_{0}+\cdots+\theta_{k}v_{k}\)可以写为

\[x=\theta_{0}v_{0}+\cdots+\theta_{k}v_{k}=v_{0}+\theta_{1}(v_{1}-v_{0})+\cdots+\theta_{k}(v_{k}-v_{0})=v_{0}+By \quad (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\geq 0\), \(1^{T}y\leq 1\),有\(A_1x\geq A_{1}v_{0}\), \(1^{T}A_{1}x\leq 1^{T}Av_{0}+ 1\)
则单纯形中的 x 可以表示为\(\{x\mid A_1x\geq A_1v_0\), 1\(^TA_1x\leq1^TAv_0+1,A_2x=A_2v_0\}\)

一些矩阵

  • 对称矩阵集合:\(S^{n}=\{x\in R^{n\times n}\mid X=X^{T}\}\)
  • 半正定矩阵集合:\(S_{+}^{n}=\{x\in R^{n\times n}\mid X=X^{T}, X\succeq0\}\)
  • 正定矩阵集合:\(S_{++}^{n}=\{x\in R^{n\times n}\mid X=X^{T}, X\succ0\}\)

保凸运算举例

任意多个凸集的交集

\(S_0\)为凸集,\(\forall a\in A\),则\(\bigcap_{a\in A}S_a\)为凸集

仿射函数

\(f= Ax+ b\), \(A\in R^{m\times n}\), \(b\in R^m\)
\(S\in R^n\)为凸,则\(f(S)=\{f(x)\mid x\in S\}\)为凸,我们称\(f:R^n\to R^m\) 是仿射的 (线性映射)

缩放和移位

\[\alpha S=\{\alpha x\mid x\in S\}\quad S+a=\{x+a\mid x\in S\} \]

透视函数

透视函数(perspective function):\(P:R^{n+1}\to R^n,domP:R^n\times R_{++}\)
\(P( z, t) = \frac zt\), \(z\in R^n\), \(t\in R_{+ + }\),凸集通过透视变换仍为凸集。

形象的理解P:一个n+1维向量保留前n维,同时除以被扔掉的n+1维得到新的向量

证明任意线段经过透视还是线段:

\(x = (\tilde{x},x_{n+1}), y = (\tilde{y},y_{n+1}), \tilde{x},\tilde{y} \in R^{n}, x_{n+1},y_{n+1} \in R_{++}, \theta \geq 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\in R^{m\times n},b\in R^{m},C\in R^{n},d\in 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: R^{m+1}\to R^m\),因此两次保凸运算得到的结果依然是凸集

参考文献/blog

posted @ 2025-05-11 21:41  bradinz  阅读(100)  评论(0)    收藏  举报