当前位置: 首页 > news >正文

凸优化问题求解

这里写目录标题

  • 1. 线性规划基本定理
  • 2.单纯形法
    • 2.1 转轴运算
  • 3. 内点法
    • 3.1 线性规划的内点法

1. 线性规划基本定理

首先我们指出,线性规划均可等价地化成如下标准形式 { min ⁡ c T x , s . t A x = b , x ⪰ 0 , \begin{align}\begin{cases}\min~c^Tx,\\\mathrm{s.t}~Ax=b,\\x\succeq0,&\end{cases}\end{align} min cTx,s.t Ax=b,x0,其中, A = [ a 1 , ⋯ , a n ] ∈ R m × n , b ∈ R m , c ∈ R n A=[a_1,\cdots,a_n]\in\mathbb{R}^{m\times n},b\in\mathbb{R}^m,c\in\mathbb{R}^n A=[a1,,an]Rm×n,bRm,cRn不妨恒假定矩阵 A A A 是行满秩的,即 r a n k ( A ) = m \mathbf{rank}(A)=m rank(A)=m(否则根据线性代数的理论,可以找到 r a n k ( A ) \mathbf{rank}(A) rank(A) 行方程来替换原方程,同时为了叙述简便,分别称矩阵 A A A 和 向量 b b b 为(1)的系数矩阵和右端向量.

因为线性规划的可行集是一个多面体,并且目标函数是线性的,从几何上直观地看,线性函数在多面体上的极小点若存在,则必然在多面体的顶点上取得.对于标准形式的线性规划问题,其最小值点必在坐标轴上达到,于是这就需要研究 A x = b Ax = b Ax=b 的所谓基础解的性质.

对标准形式的线性规划问题(7.1.1), 设方程组 A x = b Ax=b Ax=b 有解. 设 b ∈ s p a n ( A ) , { a j } j ∈ J b\in\mathbf{span}(A),\{a_j\}_{j\in J} bspan(A),{aj}jJ A A A的列向量的一个极大线性无关组,其中 J ⊂ { 1 , . . . , n } , ∣ J ∣ = m ( ∣ J ∣ J\subset \{ 1, ..., n\} , |J|= m( |J| J{1,...,n},J=m(J 表示集合 J J J 所含元素个数).那么 b b b 必可表示为 { a j } j ∈ J \{a_j\}_{j\in J} {aj}jJ 的线性组合.

定义 1.1 (线性方程组的基础解) 设 A ∈ R m × n , b ∈ R m , x = ( x 1 , . . . , x n ) T A\in\mathbb{R}^{m\times n},\:b\in\mathbb{R}^m,\:x=(x_1,...,x_n)^T ARm×n,bRm,x=(x1,...,xn)T 是线性方程组 A x = b Ax=b Ax=b 的一个解.如果存在 J ⊂ { 1 , ⋯ , n } , ∣ J ∣ = r a n k ( A ) J\subset\{1,\cdots,n\},\quad|J|=\mathbf{rank}(A) J{1,,n},J=rank(A),使得 x j = 0 , ∀ j ∉ J ; { a j ∣ j ∈ J } 线性无关 , x_j=0,\quad\forall j\not\in J;\quad\{a_j|j\in J\}\text{线性无关}, xj=0,jJ;{ajjJ}线性无关,则称 x x x 为一个基础解, x x x 的分量 { x j ∣ j ∈ J } \{x_j|j\in J\} {xjjJ} 称为相应的基变量,并称 { x j ∣ j ∉ J } \{x_j|j\not\in J\} {xjjJ} 为非基变量.若 { x j ∣ j ∈ J } \{x_j|j\in J\} {xjjJ} 含有零元素,则称 x x x 是一个退化的基础解.

显然,若 A x = b Ax=b Ax=b 有解,则矩阵 A A A 的列向量 { a 1 , . . . , a n } \{a_1,...,a_n\} {a1,...,an} 的每一个极大线性无关组对应于一个基础解,由于 { a 1 , . . . , a n } \{a_1,...,a_n\} {a1,...,an} 的极大线性无关组未必唯一,所以 A x = b Ax=b Ax=b 的基础解也不一定是唯一的.

引理 1.1 A = [ a 1 , . . . , a n ] ∈ R m × n , b ∈ R m , x ∈ R n A=[a_1,...,a_n]\in\mathbb{R}^{m\times n},\:b\in\mathbb{R}^m,\:x\in\mathbb{R}^n A=[a1,...,an]Rm×n,bRm,xRn A x = b Ax=b Ax=b 的一个解,那么 x x x 是基础解当且仅当 { a j ∣ x j ≠ 0 } \{a_j|x_j\neq0\} {ajxj=0} 线性无关.

. 设 x x x 是基础解,根据线性方程组基础解的定义,存在 J ⊂ { 1 , ⋯ , n } , ∣ J ∣ = r a n k ( A ) J\subset\{1,\cdots,n\},\quad|J|=\mathbf{rank}(A) J{1,,n},J=rank(A),使得 x j = 0 , ∀ j ∉ J ; { a j ∣ j ∈ J } 线性无关 , x_j=0,\quad\forall j\not\in J;\quad\{a_j|j\in J\}\text{线性无关}, xj=0,jJ;{ajjJ}线性无关,于是由集合的性质可以得到, { a j ∣ x j ≠ 0 } ⊂ { a j ∣ j ∈ J } \{a_j|x_j\neq0\}\subset\{a_j|j\in J\} {ajxj=0}{ajjJ}, 所以 { a j ∣ x j ≠ 0 } \{a_j|x_j\neq0\} {ajxj=0} 是极大线性无关组的子集,故线性无关.

反之,设 A x = b Ax=b Ax=b { a j ∣ x j ≠ 0 } \{a_j|x_j\neq0\} {ajxj=0} 线性无关.不妨设
{ x j ≠ 0 j = 1 , ⋯ , k ; x j = 0 j = k + 1 , ⋯ , n . \begin{cases}x_j\neq0&j=1,\cdots,k;\\x_j=0&j=k+1,\cdots,n.\end{cases} {xj=0xj=0j=1,,k;j=k+1,,n.因为 a 1 , . . . , a k a_1,...,a_k a1,...,ak 线性无关,所以 k ≤ m = r a n k ( A ) k\leq m= \mathbf{rank}(A) km=rank(A). 当 k < m k<m k<m 时从 a k + 1 , ⋯ , a n a_{k+1},\cdots,a_n ak+1,,an 中挑选 m − k m-k mk 个向量,不妨设为 a k + 1 , ⋯ , a m a_{k+1},\cdots,a_m ak+1,,am,使得 a 1 , ⋯ , a m a_1,\cdots,a_m a1,,am 线性无关. 由于 x m + 1 = . . . = x n = 0 x_{m+1}=...=x_n= 0 xm+1=...=xn=0,所以 x x x A x = b Ax=b Ax=b 的一个基础解.

n n n 维线性方程组 A x = b Ax=b Ax=b 的解 x x x的全体构成 R n \mathbb{R} ^n Rn 中的一个仿射集. 其基础解是落在某个 m m m 维子空间的解,它使得 { a j ∣ x j ≠ 0 } \{a_j|x_j\neq0\} {ajxj=0} 线性无关.

定义 1.2 (基础可行解和基础最优解) 对于线性规划(1)即 { min ⁡ c T x , s . t A x = b , x ⪰ 0 , \begin{aligned}\begin{cases}\min~c^Tx,\\\mathrm{s.t}~Ax=b,\\x\succeq0,&\end{cases}\end{aligned} min cTx,s.t Ax=b,x0, x x x A x = b Ax=b Ax=b 的一个基础解,

(1) 若 x x x 还是(1)的一个可行点,即 x ⪰ 0 x\succeq0 x0, 则称之为(1)的一个基础可行解;

(2) 若 x x x 还是(1)的一个最优解,则称之为(1)的一个基础最优解.

对于线性规划(7.1.1),有

命题 1.2 (线性规划基本定理) 对于线性规划(1)有

(1) 若存在可行点,则必存在基础可行解;

(2) 若存在最优解,则存在基础最优解

.设 A = [ a 1 , ⋯ , a n ] ∈ R m × n , b ∈ R m , x A=[a_1,\cdots,a_n]\in\mathbb{R}^{m\times n},b\in\mathbb{R}^m,x A=[a1,,an]Rm×n,bRm,x 是(1)的一个可行点.若 { a j ∣ x j > 0 } \{a_j|x_j>0\} {ajxj>0} 线性相关,不妨设 x x x 的前 k k k 个分量非零: x j > 0 , j = 1 , ⋯ , k ; x j = 0 , j = k + 1 , ⋯ , n . \begin{aligned}x_j>0,&&j=1,\cdots,k;&&x_j=0,&&j=k+1,\cdots,n.\end{aligned} xj>0,j=1,,k;xj=0,j=k+1,,n.由于 { a j ∣ x j > 0 } \{a_j|x_j>0\} {ajxj>0} 线性相关,于是存在 0 ≠ y = ( y 1 , ⋯ , y k , 0 , ⋯ , 0 ) T ∈ R n 0\neq y=(y_1,\cdots,y_k,0,\cdots,0)^T\in\mathbb{R}^n 0=y=(y1,,yk,0,,0)TRn, 使得 A y = y 1 a 1 + ⋯ + y k a k = 0. Ay=y_1a_1+\cdots+y_ka_k=0. Ay=y1a1++ykak=0.易见,当 ϵ > 0 \epsilon>0 ϵ>0 充分小时,有
\quad (a) x j ± ϵ y j > 0 , j = 1 , ⋯ , k x_j\pm \epsilon y_j> 0, j= 1, \cdots , k xj±ϵyj>0,j=1,,k.所以 x ± ϵ y x\pm\epsilon y x±ϵy 都是可行点;
\quad (b) 若 x x x 是最优解,则 c T x ≤ c T ( x ± ϵ y ) c^Tx\leq c^T(x\pm\epsilon y) cTxcT(x±ϵy),即 c T y = 0 c^Ty=0 cTy=0. 从而 c T ( x ± ϵ y ) = c T x . c^T(x\pm\epsilon y)=c^Tx. cT(x±ϵy)=cTx.

不妨设 y 1 , . . . , y k y_1,...,y_k y1,...,yk 中至少有一个为正的项. 下面我们用用逐步逼近的思想,来让可行解 x x x 其中一个分量变为零后但仍为可行解.

ϵ \epsilon ϵ 逐步增大,直到 { x j − ϵ y j ∣ j = 1 , . . . , k } \{x_j-\epsilon y_j|j=1,...,k\} {xjϵyjj=1,...,k} 中至少有一项为 0 而其余各项非负. 因为 ϵ \epsilon ϵ 充分小,于是 x ~ : = x − ϵ y \tilde{x}:=x-\epsilon y x~:=xϵy 仍是一个可行点,且它比 x x x 至少多出一个为零的分量.

{ a j ∣ x ~ j > 0 } \{a_j|\tilde{x}_j>0\} {ajx~j>0} 仍线性相关,不断重复上述逐步逼近的操作,那么有限次后便得到可行点 x ~ \tilde{x} x~, 使得 { a j ∣ x ~ j > 0 } \{a_j|\tilde{x}_j>0\} {ajx~j>0} 线性无关(因为线性方程组 A x = b Ax=b Ax=b的 系数矩阵 A A A 的秩不为0).因为 0 ⪯ x 0\preceq x 0x,所以 { a j ∣ x ~ j > 0 } = { a j ∣ x ~ j ≠ 0 } \{a_j|\tilde{x}_j>0\}=\{a_j|\tilde{x}_j\neq0\} {ajx~j>0}={ajx~j=0}, 于是由引理 1.1可知, x ~ \tilde{x} x~ 是一个基础可行解. (1) 获证.

命题 1.2是非常重要的,它能够说明在整个可行集中求解线性规划(1)的问题可以归结为在基础可行集中求解.而 A x = b Ax=b Ax=b 的基础解个数就是 { a 1 , . . . , a n } \{a_1,...,a_n\} {a1,...,an} 的极大线性无关组的个数,且最大个数为 ( n m ) \binom{n}{m} (mn).

定义 1.3 (极点) 设 x ∈ S ⊂ R n x\in S\subset\mathbb{R}^n xSRn. 如果不存在互异的 x 1 , x 2 ∈ S x_1,x_2\in S x1,x2S 以及 0 < θ < 1 0<\theta<1 0<θ<1, 使得 x = θ x 1 + ( 1 − θ ) x 2 x=\theta x_1+(1-\theta)x_2 x=θx1+(1θ)x2,即线段 x 1 x 2 x_1x_2 x1x2之间任意一点都不属于集合 S S S ,则称 x x x S S S 的一个极点.

命题 1.3 (基础可行解的几何特征) 设 A ∈ R m × n , b ∈ R m A\in\mathbb{R}^{m\times n},\quad b\in\mathbb{R}^m ARm×n,bRm,记 D : = { x ∈ R n ∣ A x = b , x ⪰ 0 } \mathcal{D}:=\{x\in\mathbb{R}^n|Ax=b,\:x\succeq0\} D:={xRnAx=b,x0}.那么, x x x 是一个基础可行解当且仅当它是 D D D 的一个极点.

.设 x x x 不是 D \mathcal{D} D 的一个极点,不妨设 x ∈ D ( x\in\mathcal{D}( xD(否则已经不是基础可行解). 因为 x x x是基础可行解且 x x x 不是极点,于是存在 y , z ∈ D , y ≠ z y,z\in\mathcal{D},\:y\neq z y,zD,y=z,以及 0 < θ < 1 0<\theta<1 0<θ<1, 使得 x = θ y + ( 1 − θ ) z x=\theta y+(1-\theta)z x=θy+(1θ)z.不妨设设 { i ∣ x i > 0 } = { 1 , . . . , k } . \{i|x_i>0\}=\{1,...,k\}. {ixi>0}={1,...,k}. 由于 x , y , z x,y,z x,y,z 的所有分量都是非负的,且由于 x = θ y + ( 1 − θ ) z x=\theta y+(1-\theta)z x=θy+(1θ)z,所以 y , z y,z y,z 的后 n − k n-k nk 个分量也是 0. 于是 ∑ i = 1 k ( y i − z i ) a i = ∑ i = 1 k y i a i − ∑ i = 1 k z i a i = A y − A z = b − b = 0. \sum_{i=1}^k(y_i-z_i)a_i=\sum_{i=1}^ky_ia_i-\sum_{i=1}^kz_ia_i=Ay-Az=b-b=0. i=1k(yizi)ai=i=1kyiaii=1kziai=AyAz=bb=0.所以 a 1 , . . . , a k a_1,...,a_k a1,...,ak 线性相关. 由 引理 1.1可知, x x x 不是一个基础可行解,矛盾

反之,设 x x x 不是一个基础可行解但 x x x是极点,不妨设 x ∈ D ( x\in\mathcal{D}( xD(否则它已经不是 D \mathcal{D} D 的极点). 由于 x x x 不是基础可行解,则 x x x 也不是 A x = b Ax=b Ax=b 的基础解. 不妨设 { i ∣ x i > 0 } = { 1 , . . . , k } \{i|x_i>0\}=\{1,...,k\} {ixi>0}={1,...,k}, 那么 a 1 , . . . , a k a_1,...,a_k a1,...,ak 线性相关. 于是存在 0 ≠ y = ( y 1 , ⋯ , y k , 0 , ⋯ , 0 ) T 0\neq y=(y_1,\cdots,y_k,0,\cdots,0)^T 0=y=(y1,,yk,0,,0)T, 使得 A y = 0 Ay=0 Ay=0. 易见当 ϵ \epsilon ϵ 充分小时,有 x ± ϵ y ∈ D , x = 1 2 [ ( x + ϵ y ) + ( x − ϵ y ) ] . x\pm\epsilon y\in\mathcal{D},\quad x=\frac{1}{2}\big[(x+\epsilon y)+(x-\epsilon y)\big]. x±ϵyD,x=21[(x+ϵy)+(xϵy)].所以 x x x 不是 D \mathcal D D 的极点,矛盾.

2.单纯形法

单纯形法的基本思想是从线性规划的一个基础可行解出发,寻找另一个基础可行解,并在此过程中使目标函数不断下降,直至达到基础最优解.

2.1 转轴运算

转轴运算是单纯形算法的基本运算单元,现考虑如下标准形式的线性规划 { min ⁡ f ( x ) = c T x + d s . t A x = b , x ⪰ 0 , \begin{align}\begin{cases}&\min f(x)=c^Tx+d\\ &\mathrm{s.t}Ax=b,\\&x\succeq0,&\end{cases}\end{align} minf(x)=cTx+ds.tAx=b,x0, 其中  A ∈ R m × n , b ∈ R m , c ∈ R n . 下面先介绍单纯形表和三种基本变换 . \text{其中 }A\in\mathbb{R}^{m\times n},\mathrm{~}b\in\mathbb{R}^m,\mathrm{~}c\in\mathbb{R}^n.\text{ 下面先介绍单纯形表和三种基本变换}. 其中 ARm×n, bRm, cRn. 下面先介绍单纯形表和三种基本变换.构造如下所示的图表: [ x T b A b c T − d ] = [ x 1 ⋯ x p ⋯ x q ⋯ x n b a 11 ⋯ a 1 p ⋯ a 1 q ⋯ a 1 n b 1 ⋮ ⋮ ⋮ ⋮ ⋮ a m 1 ⋯ a m p ⋯ a m q ⋯ a m n b m c 1 ⋯ c p ⋯ c q ⋯ c n − d ] , \begin{align}\left.\left[\begin{array}{c|c}x^T&b\\\hline A&b\\\hline c^T&-d\end{array}\right.\right]=\left[\begin{array}{cccccc|c}x_1&\cdots&x_p&\cdots&x_q&\cdots&x_n&b\\\hline a_{11}&\cdots&a_{1p}&\cdots&a_{1q}&\cdots&a_{1n}&b_1\\\vdots&&\vdots&&\vdots&&\vdots&\vdots\\a_{m1}&\cdots&a_{mp}&\cdots&a_{mq}&\cdots&a_{mn}&b_m\\\hline c_1&\cdots&c_p&\cdots&c_q&\cdots&c_n&-d\end{array}\right],\end{align} xTAcTbbd = x1a11am1c1xpa1pampcpxqa1qamqcqxna1namncnbb1bmd ,并且称之为线性规划(2)的单纯形表.其中第一行且并非数值或变量,称之为标记行,其作用是在后续列交换时过程中标记对应变量的位置.最后一行是线性规划(1)的目标函数的系数,称之为目标行.而除标记行和目标行以外的部分是矩阵 [ A , b ] [A, b] [A,b],为叙述简便,对 1 ≤ i ≤ m 1 ≤ i ≤ m 1im,仍称矩阵 [ A , b [A, b [A,b] 的第 i i i 行为单纯形表的第 i i i 行.

(2.1.1) 变量置换, 设 1 ≤ p < q ≤ n 1 ≤ p<q ≤ n 1p<qn 将单纯性表(3)的第 p p p 列与第 q q q 列进行交换,可以得到如下新的单纯性表 [ x ′ T b A ′ b ′ c ′ T − d ′ ] = [ x 1 ⋯ x q ⋯ x p ⋯ x n b a 11 ⋯ a 1 q ⋯ a 1 p ⋯ a 1 n b 1 ⋮ ⋮ ⋮ ⋮ ⋮ a m 1 ⋯ a m q ⋯ a m p ⋯ a m n b m c 1 ⋯ c q ⋯ c p ⋯ c n − d ] . \left.\left[\begin{array}{c|c}x'^T&b\\\hline A'&b'\\\hline c'^T&-d'\end{array}\right.\right]=\left[\begin{array}{cccccc|c}x_1&\cdots&x_q&\cdots&x_p&\cdots&x_n&b\\\hline a_{11}&\cdots&a_{1q}&\cdots&a_{1p}&\cdots&a_{1n}&b_1\\\vdots&&\vdots&&\vdots&&\vdots&\vdots\\a_{m1}&\cdots&a_{mq}&\cdots&a_{mp}&\cdots&a_{mn}&b_m\\\hline c_1&\cdots&c_q&\cdots&c_p&\cdots&c_n&-d\end{array}\right]. xTAcTbbd = x1a11am1c1xqa1qamqcqxpa1pampcpxna1namncnbb1bmd .根据线性代数的内容,有 x ′ = Q x , A ′ = A Q T , b ′ = b , c ′ = Q c , d ′ = d , x'=Qx,\quad A'=AQ^T,\quad b'=b,\quad c'=Qc,\quad d'=d, x=Qx,A=AQT,b=b,c=Qc,d=d,其中 Q Q Q 是交换第 p p p 行和第 q q q 行的 n n n 阶置换矩阵, x x x n n n 维列向量,即 x = ( x 1 , x 2 , ⋯ , x n ) T x=(x_1,x_2,\cdots,x_n)^T x=(x1,x2,,xn)T,由此可得 A x = b ⟺ A ′ x ′ = b ′ . Ax=b\iff A^{\prime}x^{\prime}=b^{\prime}. Ax=bAx=b.

(2.1.2) 行初等变换, 将单纯性表(3)除标记行和目标行以外的各行进行矩阵的行初等
变换,得到新的单纯形表X.显然标记行和目标行不会改变-,仅仅是将 [ A , b ] [A, b] [A,b] 变成了 [ A ′ , b ′ ] X [A′, b′]X [A,b]X 显然 A x = b Ax = b Ax=b 同解于 A ′ x = b ′ A′x = b′ Ax=b

(2.1.3) 目标函数变形:设 1 ≤ i ≤ m , λ ∈ R 1\leq i\leq m,\lambda\in\mathbb{R} 1im,λR.将单纯性表(7.2.2)的目标行减去 [ A , b ] [A,b] [A,b] 的第 i i i 行的 λ倍,得到新的目标行 [ c ′ , − d ′ ] [c^{\prime},-d^{\prime}] [c,d]. 记目标函数 f ( x ) : = c T x + d f(x):=c^Tx+d f(x):=cTx+d ,那么,这相当于用 c T x = f ( x ) − d c^Tx=f(x)-d cTx=f(x)d 减去 A x = b Ax=b Ax=b i i i 行的 入倍,得 c ′ T x = f ( x ) − d − λ b i c^{\prime T}x=f(x)-d-\lambda b_i cTx=f(x)dλbi, 即

3. 内点法

3.1 线性规划的内点法

内点法的基本思想

单纯形法从顶点到顶点搜索最优解- 当初始点远离最优解时- 需要很长的搜索代价X 而内
点法在可行域内部进行搜索迭代的算法X 设当前点 x0 是可行集 D 的一个相对内点- 根
据 优化问题笔记 中的引理 1.2.1,设 x ∗ ∈ D x^*\in\mathcal{D} xD,那么 S F D ( x ∗ ) \mathbf{SFD}(x^*) SFD(x) 是一个闭集,且当 x ∗ ∈ r i ( D ) x^*\in\mathbf{ri}(\mathcal{D}) xri(D) 时,有 V P ∩ ∂ B ( 0 , 1 ) ⊂ F D ( x ∗ ) V_{\mathcal{P}}\cap\partial B(0,1)\subset\mathbf{FD}(x^*) VPB(0,1)FD(x),因而 c l ( F D ( x ∗ ) ) ⊂ S F D ( x ∗ ) ⊂ U ( x ∗ ) ∩ ∂ B ( 0 , 1 ) ⊂ V D ∩ ∂ B ( 0 , 1 ) \mathbf{cl}(\mathbf{FD}(x^{*}))\subset\mathbf{SFD}(x^{*})\subset\mathbf{U}(x^{*})\cap\partial B(0,1)\subset V_{\mathcal{D}}\cap\partial B(0,1) cl(FD(x))SFD(x)U(x)B(0,1)VDB(0,1)中四个集合均相等,

相关文章:

凸优化问题求解

这里写目录标题 1. 线性规划基本定理2.单纯形法2.1 转轴运算 3. 内点法3.1 线性规划的内点法 1. 线性规划基本定理 首先我们指出&#xff0c;线性规划均可等价地化成如下标准形式 { min ⁡ c T x , s . t A x b , x ⪰ 0 , \begin{align}\begin{cases}\min~c^Tx,\\\mathrm{s.…...

文件操作入门指南

目录 一、为什么使用文件 二、什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 三、文件的打开和关闭 3.1 文件指针 3.2 文件的打开和关闭 四、文件的顺序读写 ​编辑 &#x1f33b;深入理解 “流”&#xff1a; &#x1f342;文件的顺序读写函数介绍&#xff1a; …...

Axure之交互与情节与一些实例

目录 一.交互与情节简介 二.ERP登录页到主页的跳转 三.ERP的菜单跳转到各个页面的跳转 四.省市联动 五.手机下拉加载 今天就到这里了&#xff0c;希望帮到你哦&#xff01;&#xff01;&#xff01; 一.交互与情节简介 "交互"通常指的是人与人、人与计算机或物体…...

【数据库设计和SQL基础语法】--连接与联接--多表查询与子查询基础(二)

一、子查询基础 1.1 子查询概述 子查询是指在一个查询语句内部嵌套另一个查询语句的过程。子查询可以嵌套在 SELECT、FROM、WHERE 或 HAVING 子句中&#xff0c;用于从数据库中检索数据或执行其他操作。子查询通常返回一个结果集&#xff0c;该结果集可以被包含它的主查询使用…...

Android studio中导入opencv库

具体opencv库的导入流程参考链接&#xff1a;Android Studio开发之路 &#xff08;五&#xff09;导入OpenCV以及报错解决 一、出现的错误&#xff1a;NullPointerException: Cannot invoke “java.io.File.toPath()” because “this.mySdkLocation” is null 解决办法&#…...

Linux(1)_基础知识

第一部分 一、Linux系统概述 创始人&#xff1a;芬兰大学大一的学生写的Linux内核&#xff0c;李纳斯托瓦兹。 Linux时unix的类系统&#xff1b; 特点&#xff1a;多用户 多线程的操作系统&#xff1b; 开源操作系统&#xff1b; 开源项目&#xff1a;操作系统&#xff0c;应用…...

网络相关面试题

简述 TCP 连接的过程&#xff08;淘系&#xff09; 参考答案&#xff1a; TCP 协议通过三次握手建立可靠的点对点连接&#xff0c;具体过程是&#xff1a; 首先服务器进入监听状态&#xff0c;然后即可处理连接 第一次握手&#xff1a;建立连接时&#xff0c;客户端发送 syn 包…...

Vue2面试题:说一下对跨域的理解?

http请求分为两大类&#xff1a;普通http请求&#xff08;如百度请求&#xff09;和ajax请求&#xff08;跨域是出现在ajax请求&#xff09; 同源策略&#xff1a;在浏览器发起ajax请求时&#xff0c;当前的网址和被请求的网址协议、域名、端口号必须完全一致&#xff0c;目的是…...

Axure中如何使用交互样式交互事件交互动作情形

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、Axure中交互样式 1、什么是交互样式&#xff1f; 2、交互样式的作用&#xff1f; 3、Axure中如何…...

1112. 迷宫(DFS之连通性模型)

1112. 迷宫 - AcWing题库 一天Extense在森林里探险的时候不小心走入了一个迷宫&#xff0c;迷宫可以看成是由 n∗n 的格点组成&#xff0c;每个格点只有2种状态&#xff0c;.和#&#xff0c;前者表示可以通行后者表示不能通行。 同时当Extense处在某个格点时&#xff0c;他只…...

飞天使-k8s知识点1-kubernetes架构简述

文章目录 名词功能要点 k8s核心要素CNCF 云原生框架简介k8s组建介绍 名词 CI 持续集成, 自动化构建和测试&#xff1a;通过使用自动化构建工具和自动化测试套件&#xff0c;持续集成可以帮助开发人员自动构建和测试他们的代码。这样可以快速检测到潜在的问题&#xff0c;并及早…...

linux中deadline调度原理与代码注释

简介 deadline调度是比rt调度更高优先级的调度&#xff0c;它没有依赖于优先级的概念&#xff0c;而是给了每个实时任务一定的调度时间&#xff0c;这样的好处是&#xff1a;使多个实时任务场景的时间分配更合理&#xff0c;不让一些实时任务因为优先级低而饿死。deadline调度…...

jquery、vue、uni-app、小程序的页面传参方式

jQuery、Vue、Uni-app 和小程序&#xff08;例如微信小程序&#xff09;都有它们自己的页面传参方式。下面分别介绍这几种方式的页面传参方式&#xff1a; jQuery: 在jQuery中&#xff0c;页面传参通常是通过URL的查询参数来实现的。例如&#xff1a; <a href"page2…...

ModuleNotFoundError: No module named ‘openai.error‘

ModuleNotFoundError: No module named ‘openai.error’ result self.fn(*self.args, **self.kwargs) File “H:\chatGPTWeb\chatgpt-on-wechat\channel\chat_channel.py”, line 168, in _handle reply self._generate_reply(context) File “H:\chatGPTWeb\chatgpt-on-wec…...

理解pom.xml中的parent标签

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 循序渐进学SpringBoot ✨特色专栏&…...

element ui el-avatar 源码解析零基础逐行解析

avatar功能介绍 快捷配置头像的样式 avatar 的参数配置 属性说明参数size尺寸type string 类型 &#xff08;‘large’,‘medium’,‘small’&#xff09;number类型 validator 校验shape形状circle (原型) square&#xff08;方形&#xff09;icon传入的iconsrc传入的图片st…...

Linux下c语言实现动态库的动态调用

在Linux操作系统下&#xff0c;有时候需要在不重新编译程序的情况下&#xff0c;运行时动态地加载库&#xff0c;这时可以通过Linux操作系统提供的API可以实现&#xff0c;涉及到的API主要有dlopen、dlsym和dlclose。使用时&#xff0c;需要加上头文件#include <dlfcn.h>…...

为什么MCU在ADC采样时IO口有毛刺?

大家在使用MCU内部ADC进行信号采样一个静态电压时&#xff0c;可能在IO口上看到这样的波形。这个时候大家一般会认识是信号源有问题&#xff0c;但仔细观察会发现这个毛刺的频率是和ADC触发频率一样的。 那么为什么MCU在ADC采样时IO口会出现毛刺呢&#xff1f;这个毛刺对结果有…...

C# 将 Word 转化分享为电子期刊

目录 需求 方案分析 相关库引入 关键代码 Word 转 Pdf Pdf 转批量 Jpeg Jpeg 转为电子书 实现效果演示 小结 需求 曾经的一个项目&#xff0c;要求实现制作电子期刊定期发送给企业进行阅读&#xff0c;基本的需求如下&#xff1a; 1、由编辑人员使用 Microsoft Word…...

网络世界的黑暗角落:常见漏洞攻防大揭秘

网络世界的黑暗角落&#xff1a;常见漏洞攻防大揭秘 今天带来了网站常见的漏洞总结,大家在自己的服务器上也需要好好进行防护,密码不要过于简单.不然非常容易遭到攻击,最终达到不可挽回的损失.很多黑客想网络乞丐一样将你服务器打宕机,然后要求你进行付费.不知道大家有没有遇到…...

通信领域发展方向

5G网络技术&#xff1a;随着5G网络的建设和商用推广&#xff0c;各家运营商、厂商和研究机构都在探索5G技术的应用场景和解决方案&#xff0c;如网络切片、毫米波通信、多用户MIMO等。 物联网技术&#xff1a;物联网技术已经成为通信行业的重点发展领域&#xff0c;包括传感器…...

21 3GPP中 5G NR高速列车通信标准化

文章目录 信道模型实验——物理层设计相关元素μ(与子载波间隔有关)设计参考信号(DMRS) 本文提出初始接入、移动性管理、线性小区设计等高层技术。描述3GPP采用HST场景的评估参数&#xff0c;阐释了HST应用的物理层技术&#xff0c;包括数字通信和参考信号设计&#xff0c;链路…...

【网络安全】-Linux操作系统—CentOS安装、配置

文章目录 准备工作下载CentOS创建启动盘确保硬件兼容 安装CentOS启动安装程序分区硬盘网络和主机名设置开始安装完成安装 初次登录和配置更新系统安装额外的软件仓库安装网络工具配置防火墙设置SELinux安装文本编辑器配置SSH服务 总结 CentOS是一个基于Red Hat Enterprise Linu…...

CCNP课程实验-OSPF-CFG

目录 实验条件网络拓朴需求 配置实现基础配置1. 配置所有设备的IP地址 实现目标1. 要求按照下列标准配置一个OSPF网络。 路由协议采用OSPF&#xff0c;进程ID为89 &#xff0c;RID为loopback0地址。3. R4/R5/R6相连的三个站点链路OSPF网络类型配置成广播型&#xff0c;其中R5路…...

【Spring Security】打造安全无忧的Web应用--入门篇

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Spring Security的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Spring Security是什么 1.概…...

【每日一题】【12.20】2828.判别首字母缩略词

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 1.题目链接 2828. 判别首字母缩略词https://leetcode.cn/problems/check-if-a-string-is-an-acronym-of-words/ 2.题目描述 今天…...

LabVIEW开发振动数据分析系统

LabVIEW开发振动数据分析系统 自动测试系统基于LabVIEW平台设计&#xff0c;采用了多种高级硬件设备。系统的硬件组成包括PCB振动加速度传感器&#xff0c;这是一种集成了传统压电加速度传感器和电荷放大器的先进设备&#xff0c;能够直接与采集仪器连接。此外&#xff0c;系统…...

去掉乘法运算的加法移位神经网络架构

[CVPR 2020] AdderNet: Do We Really Need Multiplications in Deep Learning? 代码&#xff1a;https://github.com/huawei-noah/AdderNet/tree/master 核心贡献 用filter与input feature之间的L1-范数距离作为“卷积层”的输出为了提升模型性能&#xff0c;提出全精度梯度…...

【TB作品】51单片机,具有报时报温功能的电子钟

2.具有报时报温功能的电子钟 一、功能要求: 1.显示室温。 2.具有实时时间显示。 3.具有实时年月日显示和校对功能。 4.具有整点语音播报时间和温度功能。 5.定闹功能,闹钟音乐可选。 6.操作简单、界面友好。 二、设计建议: 1.单片机自选(C51、STM32或其他单片机)。 2.时钟日历芯…...

了解C++工作机制

基于hello.cpp对C的运行进行一个初步认识&#xff0c;并介绍国外C大佬Cherno常用的项目结构和调试Tips C是如何工作的 C工作流程1.实用工程&#xff08;project&#xff09;结构&#xff08;1&#xff09;Microsoft Visual Studio2022新建项目后&#xff0c;自动生成的原始文件…...

用Axure做的网站原型百度云/十大小说网站排名

人们会因为偶尔的小毛病而异常难受&#xff0c;而对大多数平常日子里的活蹦乱跳却毫无知觉。现代科学发现佛陀“放下身外之物”的观点也不够全面&#xff0c;因为确实有少数的身外之物能够给我们带来持续的幸福&#xff0c;值得我们追求。&#xff08;1&#xff09;良好的人际关…...

做网站公众号多少钱/上海app开发公司

实验二&#xff1a;缓冲区溢出实验&#xff08;war-ftp 1.65&#xff09;一、实验目的1、掌握缓冲区溢出的原理缓冲区是程序运行期间在内存中分配的一个连续的区域&#xff0c;用于保存包括字符数组在内的各种数据类型。溢出就是所填充的数据超过原有的缓冲区边界&#xff0c;使…...

wordpress 面包屑导航修改/搜索引擎营销sem包括

mysql-cluster的问题棘手发布时间:2009-12-01 15:56:29来源:红联作者:skyuun我搭建了一个3台服务器所做的mysql-cluster集群集群版本是7.09G 操作系统是RH-5.2-32使用的是RPM包安装方式服务器为 MySQL-Cluster-gpl-server和MySQL-Cluster-gpl-client和MySQL-Cluster-gpl-storag…...

网站开发通常叫什么部门/百度人工服务24小时

在企业的仓库功能得到了合理的选择与建立时&#xff0c;仓库内部的能力规划便成了当务之急。一般来说&#xff0c;仓库关心最多的是&#xff1a;仓储搬运设备配置如何&#xff1f;人员配置如何&#xff1f;物料又如何分类存放&#xff1f;空间如何规划&#xff1f;进货、出货、…...

厚街商城网站建设/上海营销seo

一、主流浏览器及其内核&#xff1a; 主流浏览器内核IEtridentFirefoxGeckoGoogle ChromeWebkit/blinkSafari&#xff08;苹果自带&#xff09;Webkit&#xff08;谷歌工程师和苹果工程师一起研发的&#xff09;Opera&#xff08;丹麦&#xff09;presto 二、主流浏览器的要求…...

济南地铁建设/googleseo服务公司

[sizex-large][colorred]Java集合框架之fastutil [/color][/size][url]http://rensanning.iteye.com/blog/1548162[/url] fastutil扩展了 Java集合框架&#xff0c;通过提供特定类型的map、set、list和queue&#xff0c;以及小内存占用、快速访问和插入&#xff1b;也提供大&am…...