最优化——几种重要的凸集

news/2024/11/30 2:33:12/

引言

这是中科大最优化理论的笔记,中科大凌青老师的凸优化课程,详尽易懂,基础扎实。不论是初学者还是从业多年的人,都值得系统地好好学一遍。

本文介绍种重要的凸集:超平面与半空间、球和椭球、多面体、单纯形。

超平面与半空间

超平面是具有下面形式的集合
{ x ∣ a T x = b } (1) \{x|a^Tx=b\} \tag 1 {xaTx=b}(1)
其中 a ∈ R n , a ≠ 0 , b ∈ R a \in R^n,\,\, a\neq 0,\,\, b\in R aRn,a=0,bR

a T x a^Tx aTx是内积, x ∈ R n x \in R^n xRn。如果是二维的,那么 a T x a^Tx aTx就是直线,如果是三维的,就是平面。

假设 x 0 x_0 x0是超平面上的任意一点,即任意满足 a T x 0 = b a^Tx_0=b aTx0=b的点,那么式 ( 1 ) (1) (1)可以表示为
{ x ∣ a T ( x − x 0 ) = 0 } (2) \{x|a^T(x-x_0) =0 \} \tag 2 {xaT(xx0)=0}(2)
内积为零,说明 a T a^T aT x − x 0 x-x_0 xx0正交(垂直),假设在二维空间中:

image-20221123214807581

x 0 x_0 x0是超平面上一点,对于超平面上任意一点 x x x x − x 0 x-x_0 xx0如上图黑色向量所示,与向量 a a a正交。

这是二维空间,如果是三维空间,那么该超平面就是一个(真的)平面:

img

上图左侧是二维空间中的超平面(直线),右侧是三维空间中的超平面(平面)。

image-20221123215522568

R 2 R^2 R2上由 a T x = b a^Tx=b aTx=b定义的超平面决定了两个半空间。由 a T x ≥ b a^Tx \geq b aTxb决定的半空间(无阴影)是向 a a a扩展的半空间;由 a T ≤ b a^T \leq b aTb确定的半空间(阴影部分)向 − a -a a方向扩展。

我们来看下超平面是仿射集吗?显然它是仿射集,因为它的定义就是一条直线,所以也是凸集。

那是否为凸锥呢?只有该直线过原点才是凸锥( a T x = 0 a^Tx=0 aTx=0)。

那半空间是凸集吗?肯定是凸集,空间内任意两点构成的线段一定在半空间内。它不是仿射集,因为集合两点构成的直线有可能有另外一部分超出了该集合。只有当半空间经过原点是才有可能是凸锥。

球和椭球

R n R^n Rn中的空间Euclid具有下面的形式
B ( x c , r ) = { x ∣ ∣ ∣ x − x c ∣ ∣ 2 ≤ r } = { x ∣ ( x − x c ) T ( x − x c ) ≤ r } (3) B(x_c,r) = \{x| \,\, ||x-x_c||_2 \leq r\} = \{ x|\,\, \sqrt{(x-x_c)^T(x-x_c)} \leq r\} \tag 3 B(xc,r)={x∣∣xxc2r}={x(xxc)T(xxc) r}(3)
其中 x c ∈ R x_c \in R xcR是球心,标量 r > 0 r > 0 r>0为半径。 B ( x c , r ) B(x_c,r) B(xc,r)由距离球心 x c x_c xc不超过 r r r的所有点组成。

image-20221123221134630

在二维空间中的球就是一个圆,它显然是凸集。那么是否为仿射集呢?只有当半径为零,坍塌为一个点是才是仿射集。同时该点落在原点上才是凸锥。

我们能很容易看出来该集合是一个凸集,那如何用公式证明呢?

∀ x 1 , x 2 ∈ B \forall x_1,x_2 \in B x1,x2B,即有 ∣ ∣ x 1 − x c ∣ ∣ 2 ≤ r , ∣ ∣ x 2 − x c ∣ ∣ 2 ≤ r ||x_1-x_c||_2 \leq r,||x_2-x_c||_2 \leq r ∣∣x1xc2r,∣∣x2xc2r, ∀ θ , 1 ≥ θ ≥ 0 \forall \,\, \theta, \,\, 1 \geq \theta \geq 0 θ,1θ0,那么我们要证明连接这两点的线段也在集合内,有:
∣ ∣ θ x 1 + ( 1 − θ ) x 2 − x c ∣ ∣ 2 = ∣ ∣ θ ( x 1 − x c ) + ( 1 − θ ) ( x 2 − x c ) ∣ ∣ 2 ≤ ∣ ∣ θ ( x 1 − x c ) ∣ ∣ 2 + ∣ ∣ ( 1 − θ ) ( x 2 − x c ) ∣ ∣ 2 = θ ∣ ∣ x 1 − x c ∣ ∣ 2 + ( 1 − θ ) ∣ ∣ x 2 − x c ∣ ∣ 2 ≤ r \begin{aligned} ||\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 \\ &= \theta||x_1-x_c||_2 +(1-\theta)||x_2-x_c||_2 \\ &\leq r \end{aligned} ∣∣θx1+(1θ)x2xc2=∣∣θ(x1xc)+(1θ)(x2xc)2∣∣θ(x1xc)2+∣∣(1θ)(x2xc)2=θ∣∣x1xc2+(1θ)∣∣x2xc2r
其中利用了三角不等式 ∣ ∣ a + b ∣ ∣ ≤ ∣ ∣ a ∣ ∣ + ∣ ∣ b ∣ ∣ ||a+b|| \leq ||a|| + ||b|| ∣∣a+b∣∣∣∣a∣∣+∣∣b∣∣

另一个相关的凸集是椭球,它们具有如下形式,
ε = { x ∣ ( x − x c ) T P − 1 ( x − x c ) ≤ 1 } (4) \varepsilon =\{ x|(x-x_c)^TP^{-1}(x-x_c) \leq 1 \} \tag 4 ε={x(xxc)TP1(xxc)1}(4)
其中 x c ∈ R n x_c \in R^n xcRn P ∈ S + + n P \in S^n_{++} PS++n,即 P P P是对称正定矩阵。

一个对称矩阵为正定的,当且仅当其所有的特征值均为正的。

矩阵 P P P决定了椭球从 x c x_c xc向各个方向扩展的幅度。 ε \varepsilon ε的半轴长度由 λ i \sqrt{\lambda_i} λi 给出,这里 λ i \lambda_i λi P P P的特征值。

球可以看成是 P = r 2 I P=r^2I P=r2I的椭球。

下面是一个椭球在二维空间中的例子:

image-20230601200331090

中心 x c x_c xc在上图的实心点,两个半轴由线段表示。

公式 ( 4 ) (4) (4)不太好理解,这和我们以前学的椭球的定义不太一样。我们就通过一个例子来理解。

假设在 R 2 R^2 R2
P = [ 4 0 0 1 ] P = \left[ \begin{matrix} 4 & 0 \\ 0 & 1 \\ \end{matrix} \right] P=[4001]
首先求它的特征值,特征方程为
∣ 4 − λ 0 0 1 − λ ∣ = 0 ⇒ ( 4 − λ ) ( 1 − λ ) = 0 \left| \begin{matrix} 4 -\lambda& 0 \\ 0 & 1 -\lambda\\ \end{matrix} \right| = 0 \quad \Rightarrow (4-\lambda)(1-\lambda) = 0 4λ001λ =0(4λ)(1λ)=0
P P P的特征值为 4 4 4 1 1 1都大于零。因此它是正定的,且又是对称的。

同时假设椭球的球心在原点处, x = ( x 1 , x 2 ) T x=(x_1,x_2)^T x=(x1,x2)T,有
x T P − 1 x = [ x 1 x 2 ] [ 4 0 0 1 ] − 1 [ x 1 x 2 ] = [ 1 4 x 1 x 2 ] [ x 1 x 2 ] = 1 4 x 1 2 + x 2 2 x^TP^{-1}x = \begin{bmatrix} x_1 & x_2 \end{bmatrix} \begin{bmatrix} 4 & 0 \\ 0 & 1 \end{bmatrix}^{-1} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \\ = \begin{bmatrix} \frac{1}{4}x_1 & x_2 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \\ = \frac{1}{4}x_1^2 + x_2^2 xTP1x=[x1x2][4001]1[x1x2]=[41x1x2][x1x2]=41x12+x22
{ ( x 1 , x 2 ) ∣ 1 4 x 1 2 + x 2 2 ≤ 1 } \{(x_1,x_2) |\frac{1}{4}x_1^2 + x_2^2 \leq 1 \} {(x1,x2)41x12+x221}是长轴为 2 2 2,短轴为 1 1 1的椭圆。

多面体

多面体(Polyhedra)被定义为有限个线性等式和不等式的解集(集合):
P = { x ∣ a j T x ≤ b j , j = 1 , ⋯ , m , c j T x = d j , j = 1 , ⋯ , p } (5) \mathcal P = \{x| a_j^Tx \leq b_j,\, j=1,\cdots,m, \quad c_j^Tx=d_j,\, j =1,\cdots,p\} \tag{5} P={xajTxbj,j=1,,m,cjTx=dj,j=1,,p}(5)
不等式表达的是半空间;等式表达式超平面。所以多面体实际上是一些半空间和一些超平面的交集。

image-20230601201505619

上面是由五个半空间的交集定义的多面体。

但要注意,多面体不一定是有界的,只有一个半空间约束的也叫多面体。

如果是有界的就称为有界多面体,多面体是凸集。

单纯形

单纯形(Simplex)是一种特殊的多面体。

R n R^n Rn空间中选择 v 0 , ⋯ , v k v_0,\cdots,v_k v0,,vk k + 1 k+1 k+1个点, v 1 − v 0 , ⋯ , v k − v 0 v_1-v_0,\cdots,v_k-v_0 v1v0,,vkv0线性无关,则与上述点相关的单纯形为:
C = conv { v 0 , ⋯ , v k } = { θ 0 v 0 + ⋯ + θ k v k , θ ≥ 0 , 1 T θ = 1 } (6) C=\text{conv} \{v_0,\cdots,v_k\} = \{\theta_0v_0 +\cdots + \theta_kv_k,\theta \ge 0,\pmb 1^T\theta = 1\} \tag{6} C=conv{v0,,vk}={θ0v0++θkvk,θ0,1Tθ=1}(6)
显然这是一个凸包,其中 θ \theta θ向量的每个分量都大于零,且 θ \theta θ各分量之和等于1。

这个单纯形的仿射维数为 k k k,因此也称为 R n R^n Rn空间的 k k k维单纯形。

一些常见的单纯形: 1维单纯形是一条线段;2维单纯形是一个三角形(包含其内部);3维单纯形是一个四面体。

我们来看二维空间单纯形的例子。

在二维空间中选择 k = 1 k=1 k=1,即选择两个点: v 0 , v 1 v_0,v_1 v0,v1

image-20230601203752580

那么 v 1 − v 0 v_1 -v_0 v1v0是否是线性无关的,显然只要这个向量不等于零,它就是线性无关的。由这两点所构造的单纯形是一个线段。

如果把 k k k加1,即令 k = 2 k=2 k=2,那么此时就有两个向量了:

image-20230601204713512

此时所对应的单纯形就是包含内部的三角形:

image-20230601204850777

如果再让 k + 1 = 3 k+1=3 k+1=3,那么无法在二维空间中构成单纯形,因为二维空间只需要两个向量就能确定,三个向量一定不是线性无关的。

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

解: 首先基于单纯的定义

x ∈ C ∈ R n x \in C \in R^n xCRn C C C为单纯形 ⇔ \Leftrightarrow x = θ 0 v 0 + ⋯ + θ k v k , θ ≥ 0 , 1 T θ = 1 x = \theta_0v_0 +\cdots + \theta_kv_k, \quad \theta \ge 0,\pmb 1^T\theta = 1 x=θ0v0++θkvk,θ0,1Tθ=1 v 1 − v 0 , ⋯ , v k − v 0 v_1-v_0,\cdots,v_k-v_0 v1v0,,vkv0线性无关。

定义一个新的向量和矩阵:
[ θ 1 ⋯ θ k ] T = y y ≥ 0 1 T y ≤ 1 [ v 1 − v 0 , ⋯ , v k − v 0 ] = B ∈ R k × k [\theta_1 \cdots \theta_k]^T = y\quad y\geq 0 \quad \pmb 1^T y \leq 1 \\ [v_1-v_0, \cdots, v_k - v_0] = B \in R^{k \times k} [θ1θk]T=yy01Ty1[v1v0,,vkv0]=BRk×k
注意这个向量去掉了 θ 0 \theta_0 θ0,所以 1 T y ≤ 1 \pmb 1^T y \leq 1 1Ty1

然后把 x x x拆开
x ∈ C ⇔ x = θ 0 v 0 + ⋯ + θ k v k = v 0 − v 0 ( 1 − θ 0 ) + θ 1 v 1 + ⋯ + θ k v k = v 0 − v 0 ( θ 1 + θ 2 + ⋯ + θ k ) + θ 1 v 1 + ⋯ + θ k v k = v 0 + θ 1 ( v 1 − v 0 ) + ⋯ + θ k ( v k − v 0 ) = v 0 + B y (7) \begin{aligned} x \in C \Leftrightarrow x &=\theta_0v_0 +\cdots + \theta_kv_k\\ &= v_0 - v_0(1-\theta_0) + \theta_1 v_1 + \cdots + \theta_k v_k\\ &= v_0 - v_0(\theta_1 + \theta_2 + \cdots + \theta_k) + \theta_1 v_1 + \cdots + \theta_k v_k \\ &= v_0 +\theta_1(v_1 - v_0) + \cdots + \theta_k(v_k - v_0)\\ &= v_0 + By \end{aligned} \tag{7} xCx=θ0v0++θkvk=v0v0(1θ0)+θ1v1++θkvk=v0v0(θ1+θ2++θk)+θ1v1++θkvk=v0+θ1(v1v0)++θk(vkv0)=v0+By(7)
因为 B B B中的 k k k个向量是线性无关的,所以 r a n k ( B ) = k , k ≤ n rank(B)=k, \, k \leq n rank(B)=k,kn,说明 B B B是一个列满秩矩阵。

所以可以把 B B B变成一个
[ I k 0 ] \begin{bmatrix} I_k\\ 0 \end{bmatrix} [Ik0]
上面是一个 k × k k\times k k×k的单位阵,下面是一个 ( n − k ) × k (n-k) \times k (nk)×k的零矩阵。

即存在非奇异矩阵
A = [ A 1 A 2 ] n × n A =\begin{bmatrix} A_1\\ A_2 \end{bmatrix}_{n \times n} A=[A1A2]n×n
可以使得
A B = [ A 1 A 2 ] B = [ I k 0 ] AB = \begin{bmatrix} A_1\\ A_2 \end{bmatrix} B = \begin{bmatrix} I_k\\ 0 \end{bmatrix} AB=[A1A2]B=[Ik0]
( 7 ) (7) (7)式两边左乘这样一个 A A A有:
A x = A v 0 + A B y ⇔ [ A 1 A 2 ] v 0 + [ A 1 B A 2 B ] y ⇔ { A 1 x = A 1 v 0 + y A 2 x = A 2 v 0 ⇔ { A 1 x ≥ A 1 v 0 1 T A 1 x ≤ 1 + 1 T A 1 v 0 利用 y 的性质得到这两个不等式 A 2 x = A 2 v 0 \begin{aligned} &Ax = Av_0 + ABy \\ &\Leftrightarrow \begin{bmatrix} A_1\\ A_2 \end{bmatrix}v_0 + \begin{bmatrix} A_1B\\ A_2B \end{bmatrix}y\\ &\Leftrightarrow \begin{cases} A_1x = A_1v_0 + y \\ A_2x = A_2v_0 \end{cases} \\ &\Leftrightarrow \begin{cases} A_1x \geq A_1v_0 \\ \pmb 1^T A_1x \leq \pmb 1 + \pmb 1^TA_1v_0 & 利用y的性质得到这两个不等式\\ A_2x = A_2v_0 \end{cases} \end{aligned} Ax=Av0+ABy[A1A2]v0+[A1BA2B]y{A1x=A1v0+yA2x=A2v0 A1xA1v01TA1x1+1TA1v0A2x=A2v0利用y的性质得到这两个不等式
这里说的 y y y的性质是指 y ≥ 0 1 T y ≤ 1 y\geq 0 \quad \pmb 1^T y \leq 1 y01Ty1

如果改变 y y y就可以得到单纯形中所有的点,即单纯形中任意的 x x x都可以由上面包含不等式的三个式子描述。

所以说任何的单纯形都是一个多面体(等式和不等式约束)。

一些矩阵集合

记对称矩阵集合 S n = { x ∈ R n × n ∣ x = x T } S^n = \{x \in R^{n \times n} | x=x^T\} Sn={xRn×nx=xT}

记对称半正定矩阵集合 S + n = { x ∈ R n × n ∣ x = x T , x ≽ 0 } S^n_+ = \{x \in R^{n \times n} | x=x^T, x ≽ 0\} S+n={xRn×nx=xT,x0}

其中,$ x ≽ 0 表示 表示 表示x$的所有奇异值都是大于等于零的。

记对称正定矩阵集合 S + + n = { x ∈ R n × n ∣ x = x T , x ≻ 0 } S_{++}^n = \{x \in R^{n \times n} | x=x^T, x ≻ 0\} S++n={xRn×nx=xT,x0}

那这三个集合是不是凸集?

我们先来看集合 S + n S_+^n S+n有什么性质。

回顾下凸锥的定义,集合 C C C凸锥(Convex cone) 等价于对于任意 x 1 , x 2 ∈ C x_1,x_2 \in C x1,x2C θ 1 , θ 2 ≥ 0 \theta_1,\theta_2 \geq 0 θ1,θ20都有 θ 1 x 1 + θ 2 x 2 ∈ C \theta_1x_1 + \theta_2x_2 \in C θ1x1+θ2x2C

证明: S + n S_+^n S+n是凸锥

∀ θ 1 ≥ 0 , θ 2 ≥ 0 ∀ A , B ∈ S + n \forall \theta_1 \geq 0,\theta_2 \geq 0\quad \forall A,B \in S_+^n θ10,θ20A,BS+n证明凸锥组合 θ 1 A + θ 2 B ∈ S + n \theta_1A + \theta_2B \in S_+^n θ1A+θ2BS+n

对称很好证明,如果 A , B A,B A,B都是对称矩阵,那么它们的凸锥组合也一定是对称矩阵。

如何证明半正定呢?如何矩阵 A A A B B B是半正定矩阵的话,那么对于任意的 X X X有:

∀ x ∈ R n x T A x ≥ 0 x T B x ≥ 0 \forall x \in R^n \quad x^TAx \geq 0 \quad x^TBx \geq 0 xRnxTAx0xTBx0

其中$ x^TAx, x^TBx$都是标量。

下面我们要证明这里的凸锥组合也满足这个性质,即
x T ( θ 1 A + θ 2 B ) x = x T θ 1 A x + x T θ B x ≥ 0 x^T(\theta_1 A + \theta_2B)x = x^T\theta_1Ax + x^T\theta Bx \geq 0 xT(θ1A+θ2B)x=xTθ1Ax+xTθBx0
证明完毕。

如果 A , B A,B A,B都是对称矩阵,那么它们的凸锥组合也一定是对称矩阵,所以对称的矩阵集合也是一个凸锥。

那对称的正定矩阵集合是不是凸锥呢?

考虑最简单的情况,假设维度 n = 1 n=1 n=1 S + n = R + S_+^n = R_+ S+n=R+,即变成了一个非负的实数空间。

首先标量的转置是等于本身的,其次这个标量值要大于等于零的。

对应的 S + + n = R + + S_{++}^n = R_{++} S++n=R++,即一个正实数集合,那么显然不是凸锥,因为它不包括原点(零),但是它是一个凸集。

S n = R S^n=R Sn=R就是一个实数了。


http://www.ppmy.cn/news/153048.html

相关文章

RabbitMQ深入解析与实践

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:微服务 🥭本文内容&…

使用APIPOST 进行压力测试

使用APIPOST 进行压力测试 目录概述需求: 设计思路实现思路分析1.apipost 压力测试 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for c…

C语言----类型强转

在C语言代码中我们经常会遇到对变量进行类型强转,如果没有深入理解类型强转,很容易引入代码bug,这里总结一下C语言里的类型强转。 1)符号扩展:对于要扩展量为有符号数,扩展存储位数的方法。在新的高位字节…

韩国公布新型多功能掌上游戏机

转自: 天极 http://rss.yesky.com/RSS_redirect.htm?yy***&toURLhttp://tvgame.yesky.com/174/2215674.shtml 韩国公司Cenix即将发布一款新掌上游戏机GMP-M6,大小将和任天堂GameBoy Micro相当,除了掌机功能外还将提供PMP、MP3播放器能力。 这款…

掌上游戏机项目开源

描述 这是一个有四款游戏的掌上游戏机,游戏有俄罗斯方块、贪吃蛇、赛车、打砖块。 主控单片机使用的是STC15F2K60S2,数码管是共阴的,共阳点阵(1脚为)(点阵有字的一边朝下,左下角为1脚&#xff…

单片机设计_贪吃蛇游戏(AT89C51)

51单片机游戏(贪吃蛇) 想要更多项目私wo!!! 一、电路设计 此电路由AT89C51最小系统、74HC595位移缓存器、8*8点阵LED屏和按键组成。 74HC595位移缓存器 74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK 的上升…

如果有一天,掌上游戏机的屏幕可以卷起来……

随着智能手机以及手机游戏的发展,已经把当年像PSP、PSV这样火爆一时的掌上游戏机彻底钉在了历史的长河底下,现在还剩下的掌机就都是那种把当年的小霸王游戏或者仙剑1代这种像素游戏装进去的掌上红白机,怀旧玩玩还行,一直玩就会无聊…

搭建掌上游戏开发环境

PSP、GBA等游戏的开发环境,这个环境是PS2DEV社区 通过反向工程弄出来的SDK,PSP SDK在开发时的一个目标就是完全合法化。这意味着没有一行代码是从泄露的商业SDK中拿来的。PSP SDK中的任何内容都是通过反向工程firmware和已经发布的游戏得来的。下载安装d…