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

news2024/11/25 12:35:31

引言

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

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

超平面与半空间

超平面是具有下面形式的集合
{ 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.coloradmin.cn/o/599102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

202314读书笔记|《孩子们的诗》——简单的语言,击中每个人心中的诗意

202314读书笔记|《孩子们的诗》——简单的语言,击中每个人心中的诗意 《孩子们的诗》作者果麦。这本书中的诗都是孩子们写的,虽然他们或许并不认为自己写的是诗。每个人都想一直做一个孩子,好奇、天真、单纯、善良、简单,多美美好…

【产品应用】一体化步进电机在全自动折页机的应用

随着科技的不断发展,机器人技术也越来越成熟,智能化和自动化已经成为了现代工业的发展趋势。在这个趋势下,全自动折页机作为一种高效、精确的印刷设备,被广泛应用于各种印刷品的生产中。而一体化步进电机作为全自动折页机的关键部…

SpringBoot+Vue 前后端分离在线学习平台-在线教育平台

SpringBootVue 前后端分离在线学习平台-在线教育平台 本项目是完整的前后端分离,在线学习系统。【有完整部署视频教程】 创新点: ①基于阿里云短信平台完成手机号变更【短信验证码】 ②基于支付宝沙箱支付完成在线购买课程【在线支付】 ③基于apach-echa…

【Python】函数 ② ( 函数参数定义和使用 | 形式参数和实际参数 )

文章目录 一、函数参数定义和使用二、形式参数和实际参数 一、函数参数定义和使用 Python 函数参数 作用 : 在 Python 函数 执行时 , 可以 接受 外部 函数调用者 提供的数据 ; 在 Python 函数中 , 可以接受零个或多个参数 , 这些参数可以传递到函数中进行操作 ; 函数参数也可…

Java并发(九)----线程join、interrupt

1、join 方法详解 1.1 为什么需要 join? 下面的代码执行,打印 r 是什么? static int r 0; public static void main(String[] args) throws InterruptedException {test1(); } private static void test1() throws InterruptedException …

用C++ 包装STM32 官方固件库 - 链式调用改写初始化结构体

拿C 在固件库上套娃一层有几点原因: 固件库都是用C 写的,而我平时都用C,虽然是兼容的,但C 的一些特性我不喜欢;我不喜欢官方库的函数命名风格;各个厂家的固件库大同小异,但是“小异”的那一部分…

路径规划算法:基于旗鱼优化的路径规划算法- 附代码

路径规划算法:基于旗鱼优化的路径规划算法- 附代码 文章目录 路径规划算法:基于旗鱼优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法旗鱼…

Direct3D 12——几何——基础

在几何里可分为两种几何,一种是显式几何,另外一种是隐式几何。有不同的方式表示不同的几何 隐式几何 隐式实际上是说不会告诉具体的这些点点就在哪,只告诉你这些点满足的关系。表示一定的关系但并不会给实际的点 例子: 隐式几何…

Ubuntu开机桌面黑屏只有鼠标问题解决办法(搜狗输入法导致)

参考: Ubuntu开机桌面黑屏只有鼠标问题解决办法(搜狗输入法导致) 问题描述 笔者在安装完搜狗输入法重启电脑后,电脑开机黑屏,只有鼠标的光标可以移动。笔者一开始以为是系统问题,网上查阅资料才发现有大量…

华为OD机试之全量和已占用字符集(Java源码)

全量和已占用字符集 题目描述 给定两个字符集合,一个是全量字符集,一个是已占用字符集,已占用字符集中的字符不能再使用。 输入描述 输入一个字符串 一定包含,前为全量字符集 后的为已占用字符集已占用字符集中的字符一定是全量字…

安全架构审计

安全架构审计 目录概述需求: 设计思路实现思路分析1.什么是安全架构审计2.安全架构审计工具3.现在使用的工具4.安全架构审计报告 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,ski…

最全Python+Selenium环境搭建教程-你绝对想不到有这么简单!

一,Selenium 简介 在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!_哔哩哔哩_bilibili在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!共计16条视频,包括:1. …

力扣动态规划专题(一)509 70 746 62 63 343 96 思路及C++实现

文章目录 动态规划509. 斐波那契数五步骤代码 70. 爬楼梯五步骤代码 746. 使用最小花费爬楼梯五步骤代码扩展 62. 不同路径动态规划数论 63. 不同路径 II五步骤代码 343. 整数拆分五步骤代码 96.不同的二叉搜索树五步骤代码 注意点: 动态规划 动态规划,…

Java多线程学习2

1. 多线程 线程与任务的关系 脱离了任务的线程是没有意义的 线程对象是通过Thread类来创建的 任务是通过Runnable接口来定义的 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口 (与Runnable的区别,可以拿到返回值) Thread线程…

RK3588平台开发系列讲解(驱动基础篇)设备驱动 IO 控制

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们来讲的 ioctl 接口。 在内核 3.0 以前,ioctl 接口的名字叫 ioctl;内核 3.0 以后,ioctl 接口的名字叫 unlocked_ioctl。unlocked_ioctl就是 ioctl 接…

基于深度学习的高精度血小板检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度血小板检测(红细胞RBC、白细胞WBC和血小板Platelet)识别系统可用于日常生活中或野外来检测与定位血小板目标,利用深度学习算法可实现图片、视频、摄像头等方式的血小板目标检测识别,另外支持…

程序设计综合实习(C语言):用指针优化学生成绩排名

一.目的 1.熟悉变量的指针和指向变量的的指针变量的概念和使用 2.熟悉数组的指针和指向数组的的指针变量的概念和使用 3. 掌握冒泡法或选择法排序的算法 4. 掌握函数的定义、调用、声明,以及参数的两种传递方式 二、实习环境 Visual Studio 2…

模拟集成电路设计-MOS器件物理基础(模集系列持续更新)

学习目的 欠缺的学习路径: 固体物理,半导体器件物理,器件模型,电路设计。所有的半导体器件都看成一个黑盒子,只关注端电压电流。 最佳的学习路径:两手抓,因为有些二阶效应会影响到电路本身. 本…

Vector-常用CAN工具 - 以太网工程更换环境无法打开解决

通常来说每个VN5000都有自己本身的以太网硬件网络配置,因此当我们打开别人的以太网CANoe工程或CANape工程的时候,无法进行正常的功能使用或者log的无法正常的显示,那我们该如何处理呢?这种情况常见的有以下2种可能: 1、…

数据的表示与运算

目录 一、进位计数制 二、信息编码 三、定点数数据表示 四、校验码 五、定点数补码加减运算 六、标志位的生成 七、定点数的移位运算 八、定点数的乘除运算 九、浮点数的表示 十、浮点数的运算 一、进位计数制 整数部分: 二进制、八进制、十六进制 --…