凸优化学习:PART3凸优化问题(持续更新)

news2024/9/25 23:20:20

凸优化问题

凸优化问题的广义定义

  • 目标函数为凸函数
  • 约束集合为凸集

一、优化问题

基本用语

一般优化问题的描述:
minimize ⁡ f 0 ( x )  subject to  f i ( x ) ⩽ 0 , i = 1 , ⋯   , m h i ( x ) = 0 , i = 1 , ⋯   , p (1) \begin{array}{ll} \operatorname{minimize} & f_0(x) \\ \text { subject to } & f_i(x) \leqslant 0, \quad i=1, \cdots, m \\ & h_i(x)=0, \quad i=1, \cdots, p \end{array}\tag{1} minimize subject to f0(x)fi(x)0,i=1,,mhi(x)=0,i=1,,p(1)
相关定义:

x ∈ R n x\in \R^n xRn:优化变量,optimization variable

f 0 : R n → R f_0:\R^n\rightarrow R f0:RnR:目标函数/损失函数,objective function/cost function

若是一个极大化问题,那么称为 效用函数 utility function

f i ( x ) ≤ 0 : R n → R f_i(x)\leq 0:\R^n\rightarrow \R fi(x)0:RnR:不等式约束,inequality constraint

h i ( x ) = 0 h_i(x)=0 hi(x)=0:等式约束 equality constraint

m = p = 0 m=p=0 m=p=0:无约束 unconstraited

优化问题的域:domain;所有函数定义域的交集
D = ⋂ i = 0 m dom ⁡ f i ∩ ⋂ i = 1 p dom ⁡ h i \mathcal{D}=\bigcap_{i=0}^m \operatorname{dom} f_i \cap \bigcap_{i=1}^p \operatorname{dom} h_i D=i=0mdomfii=1pdomhi
可行解集:feasible set,使得问题约束满足的解的集合

注意,还需要在目标函数的定义域内

最优点与局部最优点

最优点与局部最优点:若可行解集合不是空集那么总是能在集合中找到一个X,使得目标函数最优,这个值称为最优值。
P ∗ = inf ⁡ { f 0 ( x ) ∣ X ∈ X f } P^*=\inf \{f_0(x)|X\in X_f\} P=inf{f0(x)XXf}
X f X_f Xf为空集,那么 P ∗ = ∞ P^*=\infty P=

最优解:若 X ∗ X^* X可行,且 f 0 ( X ∗ ) = P ∗ f_0(X^*)=P^* f0(X)=P

最优解集:最优解的集合
X o p t = { X ∣ X ∈ X f , f 0 ( X ) = P ∗ } X_{opt}=\{X|X\in X_f,f_0(X)=P^*\} Xopt={XXXf,f0(X)=P}
ϵ − \epsilon- ϵ次优解集:satisficing solution

image-20230206142211939

约束一般要满足,目标函数值不一定要达到最优值,可以离最优值小一定的距离 ϵ \epsilon ϵ
X ϵ = { X ∈ X f , f 0 ( X ) ≤ P ∗ + ϵ } X_{\epsilon}=\{X\in X_f,f_0(X)\leq P^*+\epsilon\} Xϵ={XXf,f0(X)P+ϵ}
image-20230206142603420

局部最优解:

image-20230206142823051

域、可行解集、全局最优解、局部最优解, ϵ \epsilon ϵ解集之间的关系:

image-20230210182428835

x ∈ X f , f i ( x ) = 0 x\in X_f,f_i(x)=0 xXf,fi(x)=0,则 f i ( x ) ≤ 0 f_i(x)\leq 0 fi(x)0为活动约束; f i ( x ) < 0 f_i(x)<0 fi(x)<0为不活动约束。

排除临界点的方法:

image-20230210192835869

可行性优化问题

可行性优化问题一般可以写成下面的形式:
 find  x  subject to  f i ( x ) ⩽ 0 , i = 1 , ⋯   , m h i ( x ) = 0 , i = 1 , ⋯   , p . \begin{array}{ll} \text { find } & x \\ \text { subject to } & f_i(x) \leqslant 0, \quad i=1, \cdots, m \\ & h_i(x)=0, \quad i=1, \cdots, p . \end{array}  find  subject to xfi(x)0,i=1,,mhi(x)=0,i=1,,p.
如何写成标准的形式?写成最优化一个常数。

问题的标准表示

框约束 Box Constraints

minimize f 0 ( x ) subject to l 1 ≤ x i ≤ u i , i = 1 , . . . , n \begin{array}{ll} \text{minimize}& f_0(x)\\ \text{subject to}& l_1\leq x_i\leq u_i,i=1,...,n \end{array} minimizesubject tof0(x)l1xiui,i=1,...,n

即每个变量都有一个上界和下界,那么可以转换为下面的标准形式:
minimize f 0 ( x ) subject to l i − x i ≤ 0 , i = 1 , . . . , n x i − u i ≤ 0 , i = 1 , . . . , n \begin{array}{ll} \text{minimize}& f_0(x)\\ \text{subject to}& l_i-x_i\leq 0,i=1,...,n\\ & x_i-u_i\leq 0,i=1,...,n \end{array} minimizesubject tof0(x)lixi0,i=1,...,nxiui0,i=1,...,n

等价问题

如果从一个问题的解,很容易得到另一个问题的解,并且反之亦然,那么我们称两个问题是等价的。作为一个简单的例子,考虑:
minimize ⁡ f ~ ( x ) = α 0 f 0 ( x )  subject to  f ~ i ( x ) = α i f i ( x ) ⩽ 0 , i = 1 , ⋯   , m h ~ i ( x ) = β i h i ( x ) = 0 , i = 1 , ⋯   , p (2) \begin{array}{ll} \operatorname{minimize} & \tilde{f}(x)=\alpha_0 f_0(x) \\ \text { subject to } & \tilde{f}_i(x)=\alpha_i f_i(x) \leqslant 0, \quad i=1, \cdots, m \\ & \tilde{h}_i(x)=\beta_i h_i(x)=0, \quad i=1, \cdots, p \end{array}\tag{2} minimize subject to f~(x)=α0f0(x)f~i(x)=αifi(x)0,i=1,,mh~i(x)=βihi(x)=0,i=1,,p(2)
很多时候约束的量级不同,量级过大导致约束的权重变化。通过等价转换,可以将问题的约束进行标准化。

目标函数和约束函数的变换

设: ψ 0 : R → R \psi_0:\R\rightarrow \R ψ0:RR单增; ψ 1 , . . . , ψ m : R → R \psi_1,...,\psi_m:\R\rightarrow \R ψ1,...,ψm:RR满足:当且仅当 u ≤ 0 u\leq 0 u0 ψ i ( u ) ≤ 0 ; ψ m + 1 , . . . , ψ m + p : R → R \psi_i(u)\leq 0;\psi_{m+1},...,\psi_{m+p}:\R\rightarrow \R ψi(u)0;ψm+1,...,ψm+p:RR满足:当且仅当 u = 0 u=0 u=0 ψ i ( u ) = 0 \psi_i(u)=0 ψi(u)=0。我们定义函数 f ~ i \tilde f_i f~i h ~ i \tilde h_i h~i为复合函数:
f ~ i ( x ) = ψ ( f i ( x ) ) , i = 0 , . . . , m h ~ i ( x ) = ψ m + i ( h i ( x ) ) , i = 1 , . . . , p \tilde f_i(x)=\psi(f_i(x)),i=0,...,m\qquad \tilde{h}_i(x)=\psi_{m+i}(h_i(x)),i=1,...,p f~i(x)=ψ(fi(x)),i=0,...,mh~i(x)=ψm+i(hi(x)),i=1,...,p
显然,问题

image-20230211122732445

与标准形式式1等价且同解。并且式2是 ψ \psi ψ为线性函数的一种特例。


例:最小函数和最小范数平方问题
min ⁡ ∣ ∣ A X − b ∣ ∣ 2 \min ||AX-b||_2 min∣∣AXb2
上述问题是一个无约束的优化问题,等价于最小化二范数的平方。
min ⁡ ∣ ∣ A X − b ∣ ∣ 2 2 \min ||AX-b||_2^2 min∣∣AXb22
原因是原函数在实数域内单调递增。


松弛变量

f i ( x ) ≤ 0 f_i(x)\leq 0 fi(x)0等价于 ∃ s i ≥ 0 , f i ( x ) + s i ( x ) = 0 \exist s_i\geq 0,f_i(x)+s_i(x)=0 si0,fi(x)+si(x)=0,将问题进行转换,得到:

image-20230211190159902

引入 s i s_i si后,问题就不仅是关于x的优化问题了。对于问题的凸性,需要对变量x和s同时验证。

进行松弛后,将变量的维数和约束都增加了。但有些时候,会通过松弛变量,将问题的结构转换为更加通用的结构。

等式约束的消除

例:等式约束的消除

对于优化问题而言,约束的数目越多,优化越复杂,所以消除等式约束是降低优化问题难度的一个重要方法。

{ h i ( x ) = 0 , i = 1 , . . . , p } (3) \{h_i(x)=0,i=1,...,p\}\tag{3} {hi(x)=0,i=1,...,p}(3)

是一组方程。假设我们能够得到这组方程的解,那么用一组参数 z ∈ R k z\in \R^k zRk来显式地参数化等式约束。设函数 ϕ : R k → R n \phi:\R^k\rightarrow \R^n ϕ:RkRn是这样的函数: x x x满足式(3)等价于存在一些 z ∈ R k z\in\R^k zRk,使得
x = ϕ ( z ) x=\phi(z) x=ϕ(z)
那么优化问题

image-20230211150554910

与原问题式1等价。求解出 z z z后,可由 x = ϕ ( z ) x=\phi(z) x=ϕ(z)得出最优解 x x x

相当于用变量z去表示x,然后代入原目标函数和约束中。

等式定义了一组超平面,可以表示为特解+一组基的形式


例:消除线性等式约束 A X − b = 0 AX-b=0 AXb=0

A ∈ R p × n A\in \R^{p\times n} ARp×n,是否能找到一组 z z z表示X呢?

分情况讨论:

  • A X − b = 0 AX-b=0 AXb=0无解,那么原问题无可行解
  • 反之,令 x 0 x_0 x0为等式约束的任意可行解,那么通解可以表示为 F z + x 0 Fz+x_0 Fz+x0。即 ϕ ( z ) = F z + x 0 \phi (z)=Fz+x_0 ϕ(z)=Fz+x0

二、凸优化

标准形式的凸优化问题

凸优化问题是形如:
minimize ⁡ f 0 ( x )  subject to  f i ( x ) ⩽ 0 , i = 1 , ⋯   , m a i x = b i , i = 1 , ⋯   , p (4) \begin{array}{ll} \operatorname{minimize} & f_0(x) \\ \text { subject to } & f_i(x) \leqslant 0, \quad i=1, \cdots, m \\ & a_i^x=b_i, \quad i=1, \cdots, p \end{array}\tag{4} minimize subject to f0(x)fi(x)0,i=1,,maix=bi,i=1,,p(4)
从广义上来说,如果目标函数是一个凸函数,约束的集合为凸集,那么问题就是凸问题。

狭义上的凸问题:

  • 目标函数是凸函数
  • 不等式约束的函数也是凸函数
  • 等式约束函数是仿射函数
image-20230211163029357

在这样的定义下,凸优化问题的可行域一定是凸的,因为他是问题定义域
D = ⋂ i = 0 m d o m f i \mathcal{D}=\bigcap_{i=0}^m\bold{dom}f_i D=i=0mdomfi
(凸集),m个下水平集,以及p个超平面的交集。因此,在凸优化问题中,我们是在一个凸集上极小化一个凸的函数。

若目标函数变为拟凸函数,那么该问题成为拟凸优化问题。但如果目标函数是凹函数,或者其他函数,那么我们统一称之为非凸优化问题。


例:
min ⁡ f 0 ( x ) = x 1 2 + x 2 2 s.t. { f 1 ( x ) : x 1 1 + x 2 2 ≤ 0 h 1 ( x ) : ( x 1 + x 2 ) 2 = 0 \min f_0(x)=x_1^2+x_2^2\\ \text{s.t.}\begin{cases}f_1(x):\frac{x_1}{1+x_2^2}\leq 0\\ h_1(x):(x_1+x_2)^2=0\end{cases} minf0(x)=x12+x22s.t.{f1(x):1+x22x10h1(x):(x1+x2)2=0
表面上看不是狭义的凸问题,可以转换为下面的形式:

image-20230211184952212

如果等式约束是一个放射约束,那么可利用等式约束对问题进行降维:

image-20230211185125786

一般来说,不对问题进行降维,有必要的情况才会进行降维。

凹最大化问题

约束不变,若目标是最大化一个凹函数,那么等价于最小化一个凸函数,即,该情况下仍是凸优化问题
max ⁡ f 0 ( x ) ⇔ min ⁡ − f 0 ( x ) \max f_0(x)\Leftrightarrow \min -f_0(x) maxf0(x)minf0(x)
同理,如果 f 0 ( x ) f_0(x) f0(x)是拟凹的,那么最大化该问题被称为拟凹的。

局部最优解与全局最优解

对于凸问题来说,局部最优解一定是全局最优解。

局部最优: ∃ R > 0 , f 0 ( x ) = inf ⁡ { f 0 ( z ) ∣ z 可行 , x 可行 , ∣ ∣ x − z ∣ ∣ ≤ R } \exist R>0,f_0(x)=\inf \{f_0(z)|z可行,x可行,||x-z||\leq R\} R>0,f0(x)=inf{f0(z)z可行,x可行,∣∣xz∣∣R}

证明:

x x x不是全局最优解,即 ∃ y \exists y y可行, f 0 ( y ) < f 0 ( x ) f_0(y)< f_0(x) f0(y)<f0(x)

又因为 x x x是局部最优的,那么 ∣ ∣ y − x ∣ ∣ 2 > R ||y-x||_2> R ∣∣yx2>R,那么可以构造出一个新的解: z = ( 1 − θ ) x + θ y , θ = R 2 ∣ ∣ y − x ∣ ∣ 2 ∈ [ 0 , 1 2 ] z=(1-\theta)x+\theta y,\theta=\frac{R}{2||y-x||_2}\in[0,\frac{1}{2}] z=(1θ)x+θy,θ=2∣∣yx2R[0,21],所以z是x和y的凸组合。又因为可行解集一定是个凸集,所以z一定在可行解集内,即 z z z可行。

又因为 f 0 ( x ) f_0(x) f0(x)是凸函数,故
f 0 ( z ) ≤ θ f 0 ( x ) + ( 1 − θ ) f 0 ( y ) ∣ ∣ z − x ∣ ∣ 2 = θ ∣ ∣ x − y ∣ ∣ 2 = R 2 (2.2) f_0(z)\leq \theta f_0(x)+(1-\theta)f_0(y)\\ ||z-x||_2=\theta ||x-y||_2=\frac{R}{2}\tag{2.2} f0(z)θf0(x)+(1θ)f0(y)∣∣zx2=θ∣∣xy2=2R(2.2)
z z z在x的邻域内。因为x是局部最优解,故 f 0 ( x ) < f 0 ( z ) f_0(x)<f_0(z) f0(x)<f0(z)

即,综上所述,需要满足下面的条件:
f 0 ( y ) < f 0 ( x ) f 0 ( x ) < f 0 ( z ) f_0(y)<f_0(x)\\ f_0(x)<f_0(z) f0(y)<f0(x)f0(x)<f0(z)
即f
f 0 ( y ) < f 0 ( x ) < f 0 ( z ) f_0(y)<f_0(x)<f_0(z) f0(y)<f0(x)<f0(z)
与式2.2矛盾。故x一定是全局最优解。

图形表示:

image-20230211195015858

可微函数 f 0 f_0 f0的最优性准则

可微凸问题目标函数的一阶条件:
f 0 ( y ) ≥ f 0 ( x ) + ∇ f 0 T ( x ) ⋅ ( y − x ) ∀ x , y ∈ d o m f f_0(y)\geq f_0(x)+\nabla f_0^T(x)\cdot (y-x)\qquad \forall x,y\in \bold{dom}f f0(y)f0(x)+f0T(x)(yx)x,ydomf
问题的可行域:
X f = { x ∣ f i ( x ) ≤ 0 , i = 1 , . . . , m ; h i ( x ) = 0 , i = 1 , . . . , p } X_f=\{x|f_i(x)\leq 0,i=1,...,m;h_i(x)=0,i=1,...,p\} Xf={xfi(x)0,i=1,...,m;hi(x)=0,i=1,...,p}
那么 X ∗ ∈ X f X^*\in X_f XXf最优等价于
∇ f 0 T ( X ∗ ) ( y − X ∗ ) ≥ 0 (2.3) \nabla f_0^T(X^*)(y-X^*)\geq 0\tag{2.3} f0T(X)(yX)0(2.3)
image-20230212135001157


约束仅为等式约束

min ⁡ f 0 ( x ) d o m f 0 = R n s . t . A X = b \min f_0(x)\\ \bold{dom}f_0=\R^n\\ s.t. AX=b minf0(x)domf0=Rns.t.AX=b

∃ x , A X = b \exist x,AX=b x,AX=b,那么X最优等价于 ∀ y , A y = b , ∇ f 0 T ( x ) ( y − x ) ≥ 0 \forall y,Ay=b,\nabla f_0^T(x)(y-x)\geq 0 y,Ay=b,f0T(x)(yx)0成立。

又因为 A X = b , A y = b AX=b,Ay=b AX=bAy=b,那么 y = X + v , v ∈ N ( A ) y=X+v,v\in \mathcal{N}(A) y=X+v,vN(A),即A的化零空间中的一个向量。

y是方程组的解,等于通解v加上特解X

因此,最优性条件可表示为
∇ f 0 ( x ) v ≥ 0 , ∀ v ∈ N ( A ) \nabla f_0(x)v\geq 0,\forall v\in \mathcal N(A) f0(x)v0,vN(A)
那么只有两种情况:

  • 子空间退化为零点:那么 y = = X y==X y==X,即方程只有一个解,矩阵A是可逆的。

  • ∇ f 0 ( x ) \nabla f_0(x) f0(x)正交于子空间:

    image-20230212153709387

约束仅为非负约束:互补条件

min ⁡ f 0 ( x ) s . t . x ≥ 0 \min f_0(x)\\ s.t.x\geq 0 minf0(x)s.t.x0

∃ x ≥ 0 \exist x\geq 0 x0 x x x最优等价于 ∀ y ≥ 0 \forall y\geq 0 y0
∇ f 0 T ( x ) ( y − x ) ≥ 0 即 ∇ f 0 T ( x ) y − ∇ f 0 T ( x ) x ≥ 0 \nabla f_0^T(x)(y-x)\geq 0\\ 即\nabla f_0^T(x)y-\nabla f_0^T(x)x\geq 0 f0T(x)(yx)0f0T(x)yf0T(x)x0

  • ①:若 ∇ f 0 T ( x ) ≤ 0 \nabla f_0^T(x)\leq 0 f0T(x)0,则 ∇ f 0 T ( x ) y \nabla f_0^T(x)y f0T(x)y必可以取无穷小,则必有 ∇ f 0 ( x ) ≥ 0 \nabla f_0(x)\geq 0 f0(x)0
  • ∀ y \forall y y均有 ∇ f 0 ( x ) T ( y − x ) ≥ 0 \nabla f_0(x)^T(y-x)\geq 0 f0(x)T(yx)0,当y=0时, ∇ f 0 T ( x ) x ≤ 0 \nabla f_0^T(x)x\leq 0 f0T(x)x0
  • ∇ f 0 T ( x ) ≥ 0 , x ≥ 0 , \nabla f_0^T(x)\geq 0,x\geq 0, f0T(x)0,x0 ∇ f 0 T ( x ) x ≥ 0 \nabla f_0^T(x)x\geq 0 f0T(x)x0

由②和③可知, f 0 T ( x ) x = 0 f_0^T(x)x=0 f0T(x)x=0

结论:如果x是最优解,那么一定满足下面的条件
{ x ≥ 0 ∇ f 0 ( x ) ≥ 0 ( ∇ f 0 ( x ) ) i x i = 0 \begin{cases}x\geq 0\\ \nabla f_0(x)\geq 0\\ (\nabla f_0(x))_ix_i=0\end{cases} x0f0(x)0(f0(x))ixi=0
该条件称为互补条件

几何解释:

image-20230212161059060

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/340232.html

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

相关文章

Centos7 安装Hadoop3 单机版本(伪分布式版本)

环境版本CentOS-7JDK-8Hadoop-3CentOS-7 服务器设置设置静态IP查看IP配置在/etc/sysconfig/network-scripts/目录下的ifcfg-ens33文件中。[rootHadoop3-master sbin]# cd /etc/sysconfig/network-scripts [rootHadoop3-master network-scripts]# ll 总用量 232 -rw-r--r--. 1 r…

云计算培训靠谱吗?

怎么算靠谱的培训呢&#xff1f; 举个例子&#xff1a; 我想参加云计算培训找个工作&#xff0c;机构满足了我的要求&#xff0c;有工作了&#xff0c;但是不是做云计算相关的。 小强也参加了云计算培训&#xff0c;想学好云计算成为技术大牛&#xff0c;最后专业学得普普通…

java环境配置

java环境配置步骤下载jdk安装jdk配置环境变量通过控制台命令验证配置是否成功大功告成安装教程&#xff1a; https://blog.csdn.net/m0_37220730/article/details/103585266 下载jdk 若不理解JDK/JRE/JVM的关系&#xff0c;可以点此查看初识Java&#xff08;概念、版本迭代、…

DIN解读

传统的Embedding&MLP架构将用户特征编码进一个固定长度的向量。当推出一个商品时&#xff0c;该架构无法捕捉用户丰富的历史行为中的多样性兴趣与该商品的关联。阿里妈妈团队提出了DIN网络进行改进&#xff0c;主要有如下两点创新&#xff1a; 引入注意力机制来捕捉历史行为…

【Linux下代码调试工具】gdb 的基本使用

gdb的基本使用前言准备gdb工具调试须知gdb的基本指令进入调试退出调试显示代码及函数内容运行程序给程序打断点查看断点位置断点使能取消断点逐过程调试逐语句调试运行到下一个断点查看变量的值变量值常显示取消变量值常显示前言 在主页前面的几篇文章已经介绍了Vim编辑器及Ma…

C语言(内联函数(C99)和_Noreturn)

1.内联函数 通常&#xff0c;函数调用都有一定的开销&#xff0c;因为函数的调用过程包含建立调用&#xff0c;传递参数&#xff0c;跳转到函数代码并返回。而使用宏是代码内联&#xff0c;可以避开这样的开销。 内联函数&#xff1a;使用内联diamagnetic代替函数调用。把函数…

【MySQL】 事务

&#x1f60a;&#x1f60a;作者简介&#x1f60a;&#x1f60a; &#xff1a; 大家好&#xff0c;我是南瓜籽&#xff0c;一个在校大二学生&#xff0c;我将会持续分享Java相关知识。 &#x1f389;&#x1f389;个人主页&#x1f389;&#x1f389; &#xff1a; 南瓜籽的主页…

opencv窗口的创建/显示/销毁

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

Docker-harbor私有仓库

一、Harbor概述 1、Harbor的概念 • Harbor是VMware公司开源的企业级Docker Registry项目&#xff0c;其目标是帮助用户迅速搭建一个企业级的Docker Registry服务 • Harbor以 Docker 公司开源的Registry 为基础&#xff0c;提供了图形管理UI、基于角色的访问控制(Role Base…

力扣SQL刷题9

目录1107. 每日新用户统计-勉强579. 查询员工的累计薪水 - 各种绕易错点&#xff1a;range与rows区别615. 平均工资&#xff1a;部门与公司比较with建临时表注意点1107. 每日新用户统计-勉强 题型&#xff1a;每个日期中首次登录人数 解答&#xff1a;从原表中用按用户分组后m…

嵌入式开发----示波器入门

示波器入门前言一、示波器介绍关键指标工作原理二、功能按钮介绍三、一键入门四、 典型应用场景校准捕捉测试总线通讯总结前言 对于嵌入式工程师来说&#xff0c;示波器的使用极为重要&#xff0c;他就像是“电子工程师的眼睛”&#xff0c;把被测信号的实际波形显示在屏幕上&…

Java特性之设计模式【桥接模式】

一、桥接模式 概述 桥接&#xff08;Bridge&#xff09;是用于把抽象化与实现化解耦&#xff0c;使得二者可以独立变化。这种类型的设计模式属于结构型模式&#xff0c;它通过提供抽象化和实现化之间的桥接结构&#xff0c;来实现二者的解耦 这种模式涉及到一个作为桥接的接口…

67. 二进制求和

文章目录题目描述竖式模拟转换为十进制计算题目描述 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 示例 1&#xff1a; 输入:a “11”, b “1” 输出&#xff1a;“100” 示例 2&#xff1a; 输入&#xff1a;a “1010”, b “1011” …

“白学”了十几年?这两年才感悟出的高效学习方法

作者&#xff1a;元青 微信公众号 「技乐书香」 引言 虽然从小学开始算起&#xff0c;一直到我现在硕士快毕业&#xff0c;已经学习了接近十九年了&#xff0c;但是只有最近两年算得上真正的在"学习"&#xff0c;之前的十七年都没有明白也没有认可学习的意义&#…

网络安全实验室7.综合关

7.综合关 1.渗透测试第一期 url&#xff1a;http://lab1.xseclab.com/base14_2d7aae2ae829d1d5f45c59e8046bbc54/ 进入忘记密码页面&#xff0c;右键查看源码&#xff0c;发现一个手机号 解题思路&#xff1a;通过给admin用户绑定13388758688手机号码&#xff0c;然后再进行…

【软件测试】企业测试面试题9道,从自我介绍到项目考察+回答......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 1、自我介绍 您好&a…

leaflet 上传WKT文件,在地图上显示图形(示例代码055)

第055个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载WKT文件,将图形显示在地图上。WKT(Well-known text)是一种文本标记语言,可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及多面体。可以通过几何集合的方式来表示不同维度的几何对象。 …

centos学习记录

遇到的问题及其解决办法 centos7安装图形化界面 yum groupinstall ‘X Window System’ yum groupinstall -y ‘GNOME Desktop’ 安装完成后输入init 5进入图形化界面 centos7安装vmware-tools 第一步卸载open-vm-tools 输入命令 yum remove open-vm-tools 输入命令 reboot 在…

你必须知道的 clientWidth, offsetWidth, scrollWidth.

前言&#xff1a; 在公司移动端项目中&#xff0c;我需要十分频繁的和 DOM 元素的各种 width、height 打交道。但是这里有这么多关于 width 的属性&#xff0c;它们之间的区别到底体现在哪里&#xff1f;这是我刚刚接触移动端项目十分头疼的一个问题。经过几天的查阅&#xff0…

Django的基础使用

安装Django pip3 install django2.2.5检查是否安装Djangopip3 freeze|grep -i Django创建工程django-admin startproject 名称如&#xff1a;django-admin startproject bookmanager进入bookmanager目录运行django运行python&#xff1a;python manage.py runserver查看django进…